netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] hsr: Handle failures in module init
@ 2024-03-14 10:10 Felix Maurer
  2024-03-14 10:50 ` Denis Kirjanov
  2024-03-14 12:59 ` Breno Leitao
  0 siblings, 2 replies; 5+ messages in thread
From: Felix Maurer @ 2024-03-14 10:10 UTC (permalink / raw)
  To: netdev; +Cc: davem, edumazet, kuba, pabeni, leitao

A failure during registration of the netdev notifier was not handled at
all. A failure during netlink initialization did not unregister the netdev
notifier.

Handle failures of netdev notifier registration and netlink initialization.
Both functions should only return negative values on failure and thereby
lead to the hsr module not being loaded.

Signed-off-by: Felix Maurer <fmaurer@redhat.com>
---
 net/hsr/hsr_main.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/net/hsr/hsr_main.c b/net/hsr/hsr_main.c
index cb83c8feb746..1c4a5b678688 100644
--- a/net/hsr/hsr_main.c
+++ b/net/hsr/hsr_main.c
@@ -148,14 +148,24 @@ static struct notifier_block hsr_nb = {
 
 static int __init hsr_init(void)
 {
-	int res;
+	int err;
 
 	BUILD_BUG_ON(sizeof(struct hsr_tag) != HSR_HLEN);
 
-	register_netdevice_notifier(&hsr_nb);
-	res = hsr_netlink_init();
+	err = register_netdevice_notifier(&hsr_nb);
+	if (err)
+		goto out;
+
+	err = hsr_netlink_init();
+	if (err)
+		goto cleanup;
 
-	return res;
+	return 0;
+
+cleanup:
+	unregister_netdevice_notifier(&hsr_nb);
+out:
+	return err;
 }
 
 static void __exit hsr_exit(void)
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-03-18 13:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-14 10:10 [PATCH net] hsr: Handle failures in module init Felix Maurer
2024-03-14 10:50 ` Denis Kirjanov
2024-03-14 12:59 ` Breno Leitao
2024-03-14 15:56   ` Felix Maurer
2024-03-18 13:01     ` Simon Horman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).