Skip to content

Commit df96b8f

Browse files
q2venkuba-moo
authored andcommitted
can: gw: Use rtnl_register_many().
We will remove rtnl_register_module() in favour of rtnl_register_many(). rtnl_register_many() will unwind the previous successful registrations on failure and simplify module error handling. Let's use rtnl_register_many() instead. Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20241014201828.91221-11-kuniyu@amazon.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent c82b031 commit df96b8f

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

net/can/gw.c

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,15 @@ static struct pernet_operations cangw_pernet_ops = {
12651265
.exit_batch = cangw_pernet_exit_batch,
12661266
};
12671267

1268+
static const struct rtnl_msg_handler cgw_rtnl_msg_handlers[] __initconst_or_module = {
1269+
{.owner = THIS_MODULE, .protocol = PF_CAN, .msgtype = RTM_NEWROUTE,
1270+
.doit = cgw_create_job},
1271+
{.owner = THIS_MODULE, .protocol = PF_CAN, .msgtype = RTM_DELROUTE,
1272+
.doit = cgw_remove_job},
1273+
{.owner = THIS_MODULE, .protocol = PF_CAN, .msgtype = RTM_GETROUTE,
1274+
.dumpit = cgw_dump_jobs},
1275+
};
1276+
12681277
static __init int cgw_module_init(void)
12691278
{
12701279
int ret;
@@ -1290,27 +1299,13 @@ static __init int cgw_module_init(void)
12901299
if (ret)
12911300
goto out_register_notifier;
12921301

1293-
ret = rtnl_register_module(THIS_MODULE, PF_CAN, RTM_GETROUTE,
1294-
NULL, cgw_dump_jobs, 0);
1295-
if (ret)
1296-
goto out_rtnl_register1;
1297-
1298-
ret = rtnl_register_module(THIS_MODULE, PF_CAN, RTM_NEWROUTE,
1299-
cgw_create_job, NULL, 0);
1300-
if (ret)
1301-
goto out_rtnl_register2;
1302-
ret = rtnl_register_module(THIS_MODULE, PF_CAN, RTM_DELROUTE,
1303-
cgw_remove_job, NULL, 0);
1302+
ret = rtnl_register_many(cgw_rtnl_msg_handlers);
13041303
if (ret)
1305-
goto out_rtnl_register3;
1304+
goto out_rtnl_register;
13061305

13071306
return 0;
13081307

1309-
out_rtnl_register3:
1310-
rtnl_unregister(PF_CAN, RTM_NEWROUTE);
1311-
out_rtnl_register2:
1312-
rtnl_unregister(PF_CAN, RTM_GETROUTE);
1313-
out_rtnl_register1:
1308+
out_rtnl_register:
13141309
unregister_netdevice_notifier(&notifier);
13151310
out_register_notifier:
13161311
kmem_cache_destroy(cgw_cache);

0 commit comments

Comments
 (0)