Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Sep 2023 13:46:22 GMT
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: e30f7d9b9bb4 - stable/14 - netlink: add unregister call in cleanup
Message-ID:  <202309251346.38PDkMra027903@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=e30f7d9b9bb48368b49d815f519280b733959c81

commit e30f7d9b9bb48368b49d815f519280b733959c81
Author:     Lin Ma <linma@zju.edu.cn>
AuthorDate: 2023-06-19 09:32:59 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-25 13:45:06 +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>
    (cherry picked from commit 4bdf7f695184fb4312462ad475f3302c9da40f13)
---
 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();
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202309251346.38PDkMra027903>