In message: <20040820090006.GX30151_at_darkness.comp.waw.pl> Pawel Jakub Dawidek <pjd_at_freebsd.org> writes: : There are many calls to tsleep(9) with no timeout in our USB code. : As you all know, it is not permitted and we have KASSERT() for this: : : KASSERT(timo != 0 || mtx_owned(&Giant) || mtx != NULL, : ("sleeping without a mutex")); : : ehci.c:2441: tsleep(&sc->sc_softwake, PZERO, "ehciab", 0); : ohci.c:2288: tsleep(&sc->sc_softwake, PZERO, "ohciab", 0); : ubser.c:882: tsleep(&sc->sc_opening, PRIBIO, "ubser_op", 0); : ucom.c:275: tsleep(&sc->sc_opening, PRIBIO, "ucomop", 0); : ugen.c:633: error = tsleep(sce, PZERO | PCATCH, "ugenri", 0); : ugen.c:697: error = tsleep(sce, PZERO | PCATCH, "ugenri", 0); : uhci.c:1982: tsleep(&sc->sc_softwake, PZERO, "uhciab", 0); : uhid.c:496: error = tsleep(&sc->sc_q, PZERO | PCATCH, "uhidrea", 0); : ums.c:639: error = tsleep(sc, PZERO | PCATCH, "umsrea", 0); : usb.c:456: tsleep(&usb_all_tasks, PWAIT, "usbtsk", 0); : usb.c:534: error = tsleep(&usb_events, PZERO | PCATCH, "usbrea", 0); : usbdi.c:342: tsleep(xfer, PRIBIO, "usbsyn", 0); : usbdi_util.c:435: error = tsleep(xfer, PZERO | PCATCH, lbl, 0); : usbdi_util.c:477: error = tsleep(xfer, PZERO | PCATCH, lbl, 0); : : I saw only panic on tsleep(9) from usbdi.c, so I know for sure we don't : hold Giant there. Most of the usb stack will be called with GIANT held, which is likely why you haven't seen more panics. I'd suspect that the panic you are seeing from usbdi() due to other bogosity. WarnerReceived on Fri Aug 27 2004 - 23:07:23 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:09 UTC