git: 4bdf7f695184 - main - netlink: add unregister call in cleanup
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 22 Sep 2023 14:46:34 UTC
The branch main has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=4bdf7f695184fb4312462ad475f3302c9da40f13
commit 4bdf7f695184fb4312462ad475f3302c9da40f13
Author: Lin Ma <linma@zju.edu.cn>
AuthorDate: 2023-06-19 09:32:59 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-22 14:44:03 +0000
netlink: add unregister call in cleanup
For protocols that use netlink (generic and route for now), the unint
handler seems to have forgotten to call unregister, which will cause
the assertion the next time the module is loaded.
This patch adds unregister call to netlink_unregister_proto() for those
handlers to avoid bad things happen.
Reviewed-by: melifaro
Fixes: 7e5bf68495cc ("netlink: add netlink support")
Pull-request: https://github.com/freebsd/freebsd-src/pull/781
Signed-off-by: Lin Ma <linma@zju.edu.cn>
---
sys/netlink/netlink_generic.c | 1 +
sys/netlink/netlink_route.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/sys/netlink/netlink_generic.c b/sys/netlink/netlink_generic.c
index 54fc702d8ac6..b28b206a7ace 100644
--- a/sys/netlink/netlink_generic.c
+++ b/sys/netlink/netlink_generic.c
@@ -296,6 +296,7 @@ SYSINIT(genl_load_all, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, genl_load_all, NULL)
static void
genl_unload(void *u __unused)
{
+ netlink_unregister_proto(NETLINK_GENERIC);
EVENTHANDLER_DEREGISTER(genl_family_event, family_event_tag);
genl_unregister_family(CTRL_FAMILY_NAME);
NET_EPOCH_WAIT();
diff --git a/sys/netlink/netlink_route.c b/sys/netlink/netlink_route.c
index 6da074926405..6b293f7ef19c 100644
--- a/sys/netlink/netlink_route.c
+++ b/sys/netlink/netlink_route.c
@@ -134,6 +134,7 @@ static void
rtnl_unload(void *u __unused)
{
netlink_callback_p = nlbridge_orig_p;
+ netlink_unregister_proto(NETLINK_ROUTE);
rtnl_ifaces_destroy();
rtnl_neighs_destroy();