summaryrefslogtreecommitdiffstats
path: root/sys/net/netisr.c
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2004-10-11 20:01:43 +0000
committerandre <andre@FreeBSD.org>2004-10-11 20:01:43 +0000
commit8f39f6d2c2776f3412d171f5b7eb80b0166fc275 (patch)
treef0c74137da166f2c344e83dffee9d351e48d8bb6 /sys/net/netisr.c
parentd1815dce138247112a2a3c1f0351ab630c0b6843 (diff)
downloadFreeBSD-src-8f39f6d2c2776f3412d171f5b7eb80b0166fc275.zip
FreeBSD-src-8f39f6d2c2776f3412d171f5b7eb80b0166fc275.tar.gz
Correctly unregister a netisr by clearing the ni->ni_queue field to NULL as
well. This field is actually used by various netisr functions to determine the availablility of the specified netisr. This uncomplete unregister leads directly to a crash when the KLD unregistering the netisr is unloaded. Submitted by: Sam <sah@softcardsystems.com> MFC after: 3 days
Diffstat (limited to 'sys/net/netisr.c')
-rw-r--r--sys/net/netisr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/netisr.c b/sys/net/netisr.c
index a1d8f6f..c506e31 100644
--- a/sys/net/netisr.c
+++ b/sys/net/netisr.c
@@ -185,6 +185,7 @@ netisr_unregister(int num)
ni->ni_handler = NULL;
if (ni->ni_queue != NULL)
IF_DRAIN(ni->ni_queue);
+ ni->ni_queue = NULL;
}
struct isrstat {
OpenPOWER on IntegriCloud