diff options
author | andre <andre@FreeBSD.org> | 2004-10-11 20:01:43 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2004-10-11 20:01:43 +0000 |
commit | 8f39f6d2c2776f3412d171f5b7eb80b0166fc275 (patch) | |
tree | f0c74137da166f2c344e83dffee9d351e48d8bb6 /sys/net/netisr.c | |
parent | d1815dce138247112a2a3c1f0351ab630c0b6843 (diff) | |
download | FreeBSD-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.c | 1 |
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 { |