aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Ma <linma@zju.edu.cn>2023-06-19 09:32:59 +0000
committerEd Maste <emaste@FreeBSD.org>2023-09-25 13:45:06 +0000
commite30f7d9b9bb48368b49d815f519280b733959c81 (patch)
tree759b39b849bf9f68d3cc43d25699bee27672e78d
parentfd8bf2ecc05af841aa7e8369a43861cdc122d404 (diff)
downloadsrc-e30f7d9b9bb48368b49d815f519280b733959c81.tar.gz
src-e30f7d9b9bb48368b49d815f519280b733959c81.zip
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> (cherry picked from commit 4bdf7f695184fb4312462ad475f3302c9da40f13)
-rw-r--r--sys/netlink/netlink_generic.c1
-rw-r--r--sys/netlink/netlink_route.c1
2 files changed, 2 insertions, 0 deletions
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();