Date: Wed, 10 Aug 2005 00:13:52 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: Gordon Bergling <gbergling@0xfce3.net> Cc: freebsd-current@freebsd.org Subject: Re: [LOR] bpf.c:403 and if_fxp.c:2388 Message-ID: <20050810001154.N1953@fledge.watson.org> In-Reply-To: <42F0F43C.2040902@0xfce3.net> References: <42F0F43C.2040902@0xfce3.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 3 Aug 2005, Gordon Bergling wrote: > > I am gettings this LOR while using tcpdump on /dev/fxp0. I am found a > similar looking entry at the LOR database, but the Line Numbers are > different and the stacktrace is different. Hmm. That's odd. Normally, this is the correct lock order, with the global bpf lock before interface locks, for precisely the case below (BPF calls into the interface code during detach). This suggests that the real bug is that there's a situation where the fxp lock is being held inappropriately over a call into an attach routine in if_fxp or the like. What version of src/sys/dev/fxp/if_fxp.c are you running with on this system? Robert N M Watson > > So I think it should be posted. (?) > > lock order reversal > 1st 0xc07380a0 bpf global lock (bpf global lock) @ /usr/src/sys/net/bpf.c:403 > 2nd 0xc1604018 fxp0 (network driver) @ /usr/src/sys/dev/fxp/if_fxp.c:2388 > KDB: stack backtrace: > kdb_backtrace(0,ffffffff,c06fa8d8,c06f9730,c06c0b24) at kdb_backtrace+0x29 > witness_checkorder(c1604018,9,c06776a8,954) at witness_checkorder+0x564 > _mtx_lock_flags(c1604018,0,c06776a8,954) at _mtx_lock_flags+0x5b > fxp_ioctl(c1646800,80206910,d1e729e0,1,c0684a3d) at fxp_ioctl+0x4a > ifpromisc(c1646800,0) at ifpromisc+0xc4 > bpf_detachd(c2955600) at bpf_detachd+0xa8 > bpfclose(c294fa00,3,2000,c1bd9900,c06e98c0) at bpfclose+0x83 > devfs_close(d1e72aa4) at devfs_close+0x2f1 > VOP_CLOSE_APV(c06b9640,d1e72aa4) at VOP_CLOSE_APV+0x7e > vn_close(c210cbb0,3,c2acab80,c1bd9900,c0682492) at vn_close+0x8b > vn_closefile(c1786d38,c1bd9900,d1e72b5c,c04d8470,c1786d38) at > vn_closefile+0xca > devfs_close_f(c1786d38,c1bd9900) at devfs_close_f+0xf > fdrop_locked(c1786d38,c1bd9900,c1533394,0,c0682492) at fdrop_locked+0x88 > fdrop(c1786d38,c1bd9900,d1e72ba8,c0514bd0,c0682492) at fdrop+0x24 > closef(c1786d38,c1bd9900) at closef+0x35f > fdfree(c1bd9900,c1bd8d94,0,c068902a,6ac) at fdfree+0x473 > exit1(c1bd9900,100,d1e72d30,c064eb4f,c1bd9900) at exit1+0x3f6 > exit1(c1bd9900,d1e72d04,1,9,296) at exit1 > syscall(3b,3b,3b,809f45a,bfbfe8dc) at syscall+0x22f > Xint0x80_syscall() at Xint0x80_syscall+0x1f > --- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x28237383, esp = 0xbfbfe83c, > ebp = 0xbfbfe858 --- > > Information about the notebook can be found at > http://generic.0xfce3.net/laptop/ > > regards, > > Gordon > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050810001154.N1953>
