Re: Panic in bpf, maybe related to if_xl

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Wed, 13 Jul 2005 12:51:53 +0100 (BST)
On Tue, 12 Jul 2005, Craig Rodrigues wrote:

> My system is -CURRENT, from July 9. I use my FreeBSD box to run natd, 
> using the if_xl network driver (3Com card).
>
> I got a panic inside of bpf:
>
> mutex Giant is not owned at /usr/src/sys/net/bpf.c:1330

The lock assertion in question has two parts:

(1) Assert the BPF lock required.

(2) If debug.mpsafenet=0, assert Giant.

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().

Robert

>
> #13 0xc065e610 in _mtx_assert (m=0xc0926ec0, what=0,
>    file=0xc087e2e8 "/usr/src/sys/net/bpf.c", line=1330)
>    at /usr/src/sys/kern/kern_mutex.c:739
> #14 0xc06c8ec6 in catchpacket (d=0xc178b300, pkt=0xc17f9802 "ÿÿÿÿÿÿ",
>    pktlen=393, snaplen=4294967295, cpfn=0xc080483c <bcopy>)
>    at /usr/src/sys/net/bpf.c:1330
> #15 0xc06c8bf0 in bpf_tap (bp=0xc16545c0, pkt=0xc17f9802 "ÿÿÿÿÿÿ", pktlen=393)
>    at /usr/src/sys/net/bpf.c:1184
> #16 0xc06c8cbc in bpf_mtap (bp=0xc16545c0, m=0xc17e2600)
>    at /usr/src/sys/net/bpf.c:1238
> #17 0xc06ceb6b in ether_input (ifp=0xc168ec00, m=0xc17e2600)
>    at /usr/src/sys/net/if_ethersubr.c:572
> #18 0xc07853cf in xl_rxeof (sc=0xc1691000) at /usr/src/sys/pci/if_xl.c:2068
> #19 0xc07854d6 in xl_rxeof_task (arg=0xc1691000, pending=1)
>    at /usr/src/sys/pci/if_xl.c:2104
> #20 0xc0685182 in taskqueue_run (queue=0xc153cc00)
>    at /usr/src/sys/kern/subr_taskqueue.c:217
> #21 0xc068527a in taskqueue_swi_run (dummy=0x0)
>    at /usr/src/sys/kern/subr_taskqueue.c:252
> #22 0xc0653a10 in ithread_loop (arg=0xc153cb80)
>    at /usr/src/sys/kern/kern_intr.c:545
> #23 0xc0652e44 in fork_exit (callout=0xc06538f4 <ithread_loop>,
>    arg=0xc153cb80, frame=0xcbff1d38) at /usr/src/sys/kern/kern_fork.c:789
>
>
>
> I have a kernel.debug and crashdump if I can help someone debug this.
>
> Thanks.
> -- 
> Craig Rodrigues
> rodrigc_at_crodrigues.org
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Wed Jul 13 2005 - 09:51:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:38 UTC