diff options
-rw-r--r-- | net/can/raw.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/net/can/raw.c b/net/can/raw.c index d1bd9cc51ebe..9ae7c4206b9a 100644 --- a/net/can/raw.c +++ b/net/can/raw.c @@ -942,12 +942,20 @@ static __init int raw_module_init(void) pr_info("can: raw protocol\n"); + err = register_netdevice_notifier(&canraw_notifier); + if (err) + return err; + err = can_proto_register(&raw_can_proto); - if (err < 0) + if (err < 0) { pr_err("can: registration of raw protocol failed\n"); - else - register_netdevice_notifier(&canraw_notifier); + goto register_proto_failed; + } + return 0; + +register_proto_failed: + unregister_netdevice_notifier(&canraw_notifier); return err; } |