[LOR] bpf vs. USB (perhaps #147?)

Ulrich Spoerlein spoerlein at googlemail.com
Sun Apr 16 11:21:04 UTC 2006


Hello again,

found some other LORs on 6.1-PRERELEASE while running kismet and tcpdump
on ural0 at the same time. They all look very similar, though one is in
usb_read, the other in usb_write.


Sleeping on "usbsyn" with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock r = 0 (0xc079c280) locked @ /usr/src/sys/net/bpf.c:425
KDB: stack backtrace:
kdb_backtrace(1,c5a8ac48,c5a8c300,2,ef53f894) at kdb_backtrace+0x29
witness_warn(5,0,c06d7bd4,c06cf607) at witness_warn+0x18e
msleep(c5c49c00,0,4c,c06cf607,0) at msleep+0x42
usbd_transfer(c5c49c00,ef53f8f4,c04d6b05,c5c49c00,278940c2) at usbd_transfer+0x121
usbd_sync_transfer(c5c49c00,278940c2,c5a8acf0,c5a8c300,c4c26000) at usbd_sync_transfer+0x11
usbd_do_request_flags_pipe(c4bf7580,c4bf7500,ef53f950,ef53f94e,0) at usbd_do_request_flags_pipe+0x5d
usbd_do_request_flags(c4bf7580,ef53f950,ef53f94e,0,0) at usbd_do_request_flags+0x20
usbd_do_request(c4bf7580,ef53f950,ef53f94e) at usbd_do_request+0x1a
ural_read(c4c26000,444,c4c26000,0,ef53f990) at ural_read+0x42
ural_update_promisc(c4c26000) at ural_update_promisc+0x16
ural_ioctl(c4c1bc00,80206910,ef53f9ac,1,108903) at ural_ioctl+0x55
if_setflag(c4c1bc00,100,20000,c4c1bc44,0) at if_setflag+0x120
ifpromisc(c4c1bc00,0) at ifpromisc+0x23
bpf_detachd(c52b6a00) at bpf_detachd+0xae
bpfclose(c5c49100,7,2000,c5a8c300,c07502c0) at bpfclose+0x83
giant_close(c5c49100,7,2000,c5a8c300,c5c49100) at giant_close+0x30
devfs_close(ef53fab4) at devfs_close+0x2db
VOP_CLOSE_APV(c071cd40,ef53fab4) at VOP_CLOSE_APV+0x7e
vn_close(c5ef6dd0,7,c52d2e00,c5a8c300,0) at vn_close+0x8b
vn_closefile(c5c83cf0,c5a8c300,ef53fb6c,c0508328,c5c83cf0) at vn_closefile+0xca
devfs_close_f(c5c83cf0,c5a8c300) at devfs_close_f+0xf
fdrop_locked(c5c83cf0,c5a8c300,c4ae9640,0,c06d3ea7) at fdrop_locked+0x88
fdrop(c5c83cf0,c5a8c300,6b2,c07555c0,0) at fdrop+0x24
closef(c5c83cf0,c5a8c300) at closef+0x367
fdfree(c5a8c300) at fdfree+0x4a3
exit1(c5a8c300,0,ef53fd30,c069a577,c5a8c300) at exit1+0x438
exit1(c5a8c300,ef53fd04,1,6d,292) at exit1
syscall(3b,3b,3b,bfbf8f90,1) at syscall+0x22f
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x482d4027, esp = 0xbfbf8f5c, ebp = 0xbfbf8f78 ---
lock order reversal: (Giant after non-sleepable)
 1st 0xc079c280 bpf global lock (bpf global lock) @ /usr/src/sys/net/bpf.c:425
 2nd 0xc07502c0 Giant (Giant) @ /usr/src/sys/kern/kern_synch.c:216
KDB: stack backtrace:
kdb_backtrace(0,ffffffff,c075f100,c075f588,c0724364) at kdb_backtrace+0x29
witness_checkorder(c07502c0,9,c06d7c0d,d8) at witness_checkorder+0x578
_mtx_lock_flags(c07502c0,0,c06d7c0d,d8) at _mtx_lock_flags+0x5b
msleep(c5c49c00,0,4c,c06cf607,0) at msleep+0x2d2
usbd_transfer(c5c49c00,ef53f8f4,c04d6b05,c5c49c00,278940c2) at usbd_transfer+0x121
usbd_sync_transfer(c5c49c00,278940c2,c5a8acf0,c5a8c300,c4c26000) at usbd_sync_transfer+0x11
usbd_do_request_flags_pipe(c4bf7580,c4bf7500,ef53f950,ef53f94e,0) at usbd_do_request_flags_pipe+0x5d
usbd_do_request_flags(c4bf7580,ef53f950,ef53f94e,0,0) at usbd_do_request_flags+0x20
usbd_do_request(c4bf7580,ef53f950,ef53f94e) at usbd_do_request+0x1a
ural_read(c4c26000,444,c4c26000,0,ef53f990) at ural_read+0x42
ural_update_promisc(c4c26000) at ural_update_promisc+0x16
ural_ioctl(c4c1bc00,80206910,ef53f9ac,1,108903) at ural_ioctl+0x55
if_setflag(c4c1bc00,100,20000,c4c1bc44,0) at if_setflag+0x120
ifpromisc(c4c1bc00,0) at ifpromisc+0x23
bpf_detachd(c52b6a00) at bpf_detachd+0xae
bpfclose(c5c49100,7,2000,c5a8c300,c07502c0) at bpfclose+0x83
giant_close(c5c49100,7,2000,c5a8c300,c5c49100) at giant_close+0x30
devfs_close(ef53fab4) at devfs_close+0x2db
VOP_CLOSE_APV(c071cd40,ef53fab4) at VOP_CLOSE_APV+0x7e
vn_close(c5ef6dd0,7,c52d2e00,c5a8c300,0) at vn_close+0x8b
vn_closefile(c5c83cf0,c5a8c300,ef53fb6c,c0508328,c5c83cf0) at vn_closefile+0xca
devfs_close_f(c5c83cf0,c5a8c300) at devfs_close_f+0xf
fdrop_locked(c5c83cf0,c5a8c300,c4ae9640,0,c06d3ea7) at fdrop_locked+0x88
fdrop(c5c83cf0,c5a8c300,6b2,c07555c0,0) at fdrop+0x24
closef(c5c83cf0,c5a8c300) at closef+0x367
fdfree(c5a8c300) at fdfree+0x4a3
exit1(c5a8c300,0,ef53fd30,c069a577,c5a8c300) at exit1+0x438
exit1(c5a8c300,ef53fd04,1,6d,292) at exit1
syscall(3b,3b,3b,bfbf8f90,1) at syscall+0x22f
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x482d4027, esp = 0xbfbf8f5c, ebp = 0xbfbf8f78 ---
Sleeping on "usbsyn" with the following non-sleepable locks held:
exclusive sleep mutex bpf global lock r = 0 (0xc079c280) locked @ /usr/src/sys/net/bpf.c:425
KDB: stack backtrace:
kdb_backtrace(1,c5a8ac48,c5a8c300,0,ef53f894) at kdb_backtrace+0x29
witness_warn(5,0,c06d7bd4,c06cf607) at witness_warn+0x18e
msleep(c5c49c00,0,4c,c06cf607,0) at msleep+0x42
usbd_transfer(c5c49c00,ef53f8f4,c04d6b05,c5c49c00,278940c2) at usbd_transfer+0x121
usbd_sync_transfer(c5c49c00,278940c2,c5a8acf0,c5a8c300,c4c26000) at usbd_sync_transfer+0x11
usbd_do_request_flags_pipe(c4bf7580,c4bf7500,ef53f94c,0,0) at usbd_do_request_flags_pipe+0x5d
usbd_do_request_flags(c4bf7580,ef53f94c,0,0,0) at usbd_do_request_flags+0x20
usbd_do_request(c4bf7580,ef53f94c,0) at usbd_do_request+0x1a
ural_write(c4c26000,444,7e,c4c26000,0) at ural_write+0x45
ural_update_promisc(c4c26000) at ural_update_promisc+0x36
ural_ioctl(c4c1bc00,80206910,ef53f9ac,1,108903) at ural_ioctl+0x55
if_setflag(c4c1bc00,100,20000,c4c1bc44,0) at if_setflag+0x120
ifpromisc(c4c1bc00,0) at ifpromisc+0x23
bpf_detachd(c52b6a00) at bpf_detachd+0xae
bpfclose(c5c49100,7,2000,c5a8c300,c07502c0) at bpfclose+0x83
giant_close(c5c49100,7,2000,c5a8c300,c5c49100) at giant_close+0x30
devfs_close(ef53fab4) at devfs_close+0x2db
VOP_CLOSE_APV(c071cd40,ef53fab4) at VOP_CLOSE_APV+0x7e
vn_close(c5ef6dd0,7,c52d2e00,c5a8c300,0) at vn_close+0x8b
vn_closefile(c5c83cf0,c5a8c300,ef53fb6c,c0508328,c5c83cf0) at vn_closefile+0xca
devfs_close_f(c5c83cf0,c5a8c300) at devfs_close_f+0xf
fdrop_locked(c5c83cf0,c5a8c300,c4ae9640,0,c06d3ea7) at fdrop_locked+0x88
fdrop(c5c83cf0,c5a8c300,6b2,c07555c0,0) at fdrop+0x24
closef(c5c83cf0,c5a8c300) at closef+0x367
fdfree(c5a8c300) at fdfree+0x4a3
exit1(c5a8c300,0,ef53fd30,c069a577,c5a8c300) at exit1+0x438
exit1(c5a8c300,ef53fd04,1,6d,292) at exit1
syscall(3b,3b,3b,bfbf8f90,1) at syscall+0x22f
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x482d4027, esp = 0xbfbf8f5c, ebp = 0xbfbf8f78 ---
ural0: promiscuous mode disabled

Ulrich Spoerlein
-- 
 PGP Key ID: 20FEE9DD				Encrypted mail welcome!
Fingerprint: AEC9 AF5E 01AC 4EE1 8F70  6CBD E76E 2227 20FE E9DD
Which is worse: ignorance or apathy?
Don't know. Don't care.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060416/51932aa8/attachment.pgp


More information about the freebsd-stable mailing list