On Wed, Mar 23, 2005 at 03:46:40PM -0500, John Baldwin wrote: > On Tuesday 01 March 2005 09:04 pm, Wilkinson, Alex wrote: > > Version: FreeBSD 6.0-CURRENT #1: Tue Feb 22 12:47:37 CST 2005 > > > > Seeing these error on console: > > > > --- syscall (54, Linux ELF, linux_ioctl), eip = 0x283bf2a4, esp = > > 0xbfbf8ed0, ebp = 0xbfbf8f80 --- Calling uiomove() with the following > > non-sleepable locks held: > > exclusive sleep mutex ifnet r = 0 (0xc09b8ea0) locked _at_ > > /usr/src/sys/modules/linux/../../compat/linux/linux_ioctl.c:2135 KDB: stack > > backtrace: > > witness_warn(2,0,c08a71b8,ec80fbec,0) at witness_warn+0x175 > > uiomove(ec80fc64,20,ec80fc44,0,1) at uiomove+0x4d > > linux_ioctl_socket(c6b52000,ec80fd14,ec80fcd0,c08aa46e,68d) at > > linux_ioctl_socket+0x8f4 linux_ioctl(c6b52000,ec80fd14,c08c8f72,3ad,3) at > > linux_ioctl+0x69 syscall(2f,2f,2f,bfbfd36c,4) at syscall+0x13b > > Xint0x80_syscall() at Xint0x80_syscall+0x1f > > --- syscall (54, Linux ELF, linux_ioctl), eip = 0x283bf2a4, esp = > > 0xbfbfd290, ebp = 0xbfbfd300 --- Calling uiomove() with the following > > non-sleepable locks held: > > exclusive sleep mutex ifnet r = 0 (0xc09b8ea0) locked _at_ > > /usr/src/sys/modules/linux/../../compat/linux/linux_ioctl.c:2135 KDB: stack > > backtrace: > > witness_warn(2,0,c08a71b8,0,0) at witness_warn+0x175 > > uiomove(ec80fc64,20,ec80fc44,0,1) at uiomove+0x4d > > linux_ioctl_socket(c6b52000,ec80fd14,ec80fcd0,c08aa46e,68d) at > > linux_ioctl_socket+0x8f4 > > linux_ioctl(c6b52000,ec80fd14,c08c8f72,3ad,3) at linux_ioctl+0x69 > > syscall(2f,2f,2f,bfbfd36c,4) at syscall+0x13b > > Xint0x80_syscall() at Xint0x80_syscall+0x1f > > --- syscall (54, Linux ELF, linux_ioctl), eip = 0x283bf2a4, esp = > > 0xbfbfd290, ebp = 0xbfbfd300 --- > > Definitely a bug. The linux_ioctl() code needs to unlock the ifnet lock > before it calls uiomove() unless it knows for certain that it is talking to > UIO_SYSSPACE. Hmm, it looks like this stack trace is wrong. The only uiomove call in linux_ioctl.c is in linux_ifconf which is in fact broken. The solution here is almost certaintly to adapt the ifconf code I wrote to fix the LOR in the native version. -- Brooks -- Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:30 UTC