Date: Mon, 06 Mar 2006 09:11:17 -0700 From: Scott Long <scottl@samsco.org> To: Oleg Sharoiko <os@rsu.ru> Cc: freebsd-scsi@freebsd.org, Andrey Beresovsky <and@rsu.ru>, John Baldwin <jhb@freebsd.org> Subject: Re: Boot hangs on ips0: resetting adapter, this may take up to 5 minutes Message-ID: <440C5F25.1000401@samsco.org> In-Reply-To: <1141653998.1502.23.camel@brain.cc.rsu.ru> References: <20060215102749.D58480@brain.cc.rsu.ru> <200602281205.43592.jhb@freebsd.org> <20060303153838.Q772@brain.cc.rsu.ru> <200603031112.45211.jhb@freebsd.org> <20060304224419.N1270@wolf.os.rsu.ru> <1141653998.1502.23.camel@brain.cc.rsu.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Oleg Sharoiko wrote: > On Sat, 2006-03-04 at 23:07 +0300, Oleg Sharoiko wrote: > > >>ips0: <Adaptec ServeRAID Adapter> mem >>0xd0300000-0xd0300fff,0xd4000000-0xd7ffffff irq 11 at device 1.0 on pci3 >>ips0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xd0300000 >>ips0: irq allocation failed >>panic: Assertion mtx_unowned(m) failed at >>/usr/src-HEAD-20060228-223000UTC/sys/kern/kern_mutex.c:885 >>cpuid = 0 >>KDB: enter: panic >>[thread pid 0 tid 0 ] >>Stopped at kdb_enter+0x31: leave >>db> > > > There seems to be a small bug in the ips driver. I doesn't relate to the > hang at all, but as I suppose it needs to be fixed anyway. > > ips_pci_attach() from dev/ips/ips_pci.c does "goto error;" to make a > cleanup when something goes wrong. There we have > > error: > ips_pci_free(sc); > return (ENXIO); > > ips_pci_free() always calls > > mtx_destroy(&sc->queue_mtx); > sema_destroy(&sc->cmd_sema); > > but ips_pci_attach may jump to error: event before queue_mtx gets > initialized. Unfortunately I'm not sure how to fix this in the most > proper way. I suppose it would be nice to check in ips_pci_free() if the > mutex is initialized or not, but I don't know how to implement this > check. Another possible solution is to move initializition before first > "goto error"; So I'm leaving this for the one who knows better. > > By the way, shouldn't sc->queue also be freed in ips_pci_free ? > I'll look at this, thanks. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?440C5F25.1000401>