Locking fixes for my(4)
John Baldwin
jhb at FreeBSD.org
Wed Aug 17 19:11:23 GMT 2005
On Wednesday 17 August 2005 11:50 am, Christian Brueffer wrote:
> On Wed, Aug 17, 2005 at 10:02:55AM -0400, John Baldwin wrote:
> > On Tuesday 16 August 2005 05:13 am, Christian Brueffer wrote:
> > > On Wed, Aug 10, 2005 at 04:57:18PM -0400, John Baldwin wrote:
> > > > I've fixed up the locking for the my(4) ethernet device driver but
> > > > have no hardware to test. Can someone please test these patches?
> > > > Thanks.
> > > >
> > > > http://www.freebsd.org/~jhb/patches/my_locking.patch
> > >
> > > This one works fine.
> >
> > Thanks for testing! I've just refreshed the sf_locking.patch patch as
> > well (I think the last version I pointed you at didn't compile) which has
> > the recursive panic you reported fixed.
>
> panic: mutex sf0 not owned at /usr/home/build/src/sys/kern/kern_mutex.c:300
> cpuid = 0
> KDB: enter: panic
> [thread pid 220 tid 100071 ]
> Stopped at kdb_enter+0x30: leave
> db> tr
> Tracing pid 220 tid 100071 td 0xc1d83600
> kdb_enter(c07945bc,0,c0793ab3,d8945b08,c1d83600) at kdb_enter+0x30
> panic(c0793ab3,c1ad7aa0,c0793946,12c,c1ac2acc) at panic+0x14e
> _mtx_assert(c1ac2acc,1,c0793946,12c,c1ac2a80) at _mtx_assert+0x87
> _mtx_unlock_flags(c1ac2acc,0,c08ea1ea,4b9,c1adb800) at
> _mtx_unlock_flags+0x90 sf_init(c1ac2a80,740,c07a88e0,8020690c,c1ac2a80) at
> sf_init+0x59
> ether_ioctl(c1adb800,8020690c,c1d41d00,c05a7f61,0) at ether_ioctl+0x67
> sf_ioctl(c1adb800,8020690c,c1d41d00,100,1) at sf_ioctl+0xbc
> in_ifinit(c1adb800,c1d41d00,c1c49790,0,1) at in_ifinit+0x208
> in_control(c1e24de8,8040691a,c1c49780,c1adb800,c1d83600) at
> in_control+0x986 ifioctl(c1e24de8,8040691a,c1c49780,c1d83600,2) at
> ifioctl+0x1cd
> soo_ioctl(c1d81048,8040691a,c1c49780,c19dca80,c1d83600) at soo_ioctl+0x3ef
> ioctl(c1d83600,d8945d04,c,422,3) at ioctl+0x45d
> syscall(3b,3b,3b,80beac0,1) at syscall+0x2c0
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (54, FreeBSD ELF32, ioctl), eip = 0x8055473, esp = 0xbfbfe5fc,
> ebp = 0xbfbfee68 ---
Sheesh, I haven't done nearly as badly on the other drivers I've changed. :-P
I had missed removing the SF_UNLOCK at the end of sf_init_locked(). I've
fixed it and uploaded the patch. Thanks for all the testing. Hopefully this
one will work. :)
> I can ship you a card, but it would take some time because US customs
> is pretty anal these days :-/
No, that's fine. I'd actually prefer it if you can test it unless it is an
inconvenience.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current
mailing list