[PATCH net] can: isotp: check register_netdevice_notifier() error in module init

From: Minhong He

Date: Mon Jul 27 2026 - 23:19:41 EST


Check the return value of register_netdevice_notifier() after a successful
can_proto_register(). If notifier registration fails, unregister the CAN
protocol before returning the error.

Fixes: 8d0caedb7596 ("can: bcm/raw/isotp: use per module netdevice notifier")

Signed-off-by: Minhong He <heminhong@xxxxxxxxxx>
---
net/can/isotp.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/net/can/isotp.c b/net/can/isotp.c
index 54becaf6898f..65e890cafd7a 100644
--- a/net/can/isotp.c
+++ b/net/can/isotp.c
@@ -1908,12 +1908,18 @@ static __init int isotp_module_init(void)
pr_info("can: isotp protocol (max_pdu_size %d)\n", max_pdu_size);

err = can_proto_register(&isotp_can_proto);
- if (err < 0)
+ if (err < 0) {
pr_err("can: registration of isotp protocol failed %pe\n", ERR_PTR(err));
- else
- register_netdevice_notifier(&canisotp_notifier);
+ return err;
+ }

- return err;
+ err = register_netdevice_notifier(&canisotp_notifier);
+ if (err) {
+ can_proto_unregister(&isotp_can_proto);
+ return err;
+ }
+
+ return 0;
}

static __exit void isotp_module_exit(void)
--
2.25.1