Panic in bpf, maybe related to if_xl
Craig Rodrigues
rodrigc at crodrigues.org
Wed Jul 13 15:47:01 GMT 2005
On Wed, Jul 13, 2005 at 12:51:53PM +0100, Robert Watson wrote:
> It looks like if_xl is not properly acquiring Giant when entering the
> network stack when running with debug.mpsafenet=0. It should be calling
> NET_LOCK_GIANT() in the task queue before calling if_input().
Gleb Smirnoff provided me with this patch which I am testing now.
Things seem better......
Index: if_xl.c
===================================================================
RCS file: /home/ncvs/src/sys/pci/if_xl.c,v
retrieving revision 1.190
diff -u -r1.190 if_xl.c
--- if_xl.c 10 Jun 2005 16:49:23 -0000 1.190
+++ if_xl.c 13 Jul 2005 13:27:36 -0000
@@ -2100,9 +2100,11 @@
{
struct xl_softc *sc = (struct xl_softc *)arg;
+ NET_LOCK_GIANT();
XL_LOCK(sc);
xl_rxeof(sc);
XL_UNLOCK(sc);
+ NET_UNLOCK_GIANT();
}
/*
--
Craig Rodrigues
rodrigc at crodrigues.org
More information about the freebsd-current
mailing list