Skip to content
Snippets Groups Projects
Commit f6c6ca61 authored by Felix Maurer's avatar Felix Maurer Committed by Sasha Levin
Browse files

hsr: Handle failures in module init


[ Upstream commit 3cf28cd4 ]

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.

Fixes: f421436a ("net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)")
Signed-off-by: default avatarFelix Maurer <fmaurer@redhat.com>
Reviewed-by: default avatarShigeru Yoshida <syoshida@redhat.com>
Reviewed-by: default avatarBreno Leitao <leitao@debian.org>
Link: https://lore.kernel.org/r/3ce097c15e3f7ace98fc7fd9bcbf299f092e63d1.1710504184.git.fmaurer@redhat.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 1e1e4316
No related branches found
No related tags found
No related merge requests found
......@@ -137,14 +137,21 @@ 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)
return err;
err = hsr_netlink_init();
if (err) {
unregister_netdevice_notifier(&hsr_nb);
return err;
}
return res;
return 0;
}
static void __exit hsr_exit(void)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment