mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
hsr: Handle failures in module init
[ Upstream commit3cf28cd492
] 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:f421436a59
("net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)") Signed-off-by: Felix Maurer <fmaurer@redhat.com> Reviewed-by: Shigeru Yoshida <syoshida@redhat.com> Reviewed-by: Breno Leitao <leitao@debian.org> Link: https://lore.kernel.org/r/3ce097c15e3f7ace98fc7fd9bcbf299f092e63d1.1710504184.git.fmaurer@redhat.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d792459a6e
commit
770e3ab94e
@ -148,14 +148,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;
|
||||
|
||||
return res;
|
||||
err = hsr_netlink_init();
|
||||
if (err) {
|
||||
unregister_netdevice_notifier(&hsr_nb);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit hsr_exit(void)
|
||||
|
Loading…
Reference in New Issue
Block a user