NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/48213: ehci assertion failure during boot



On 09/15/13 11:50, Andreas Gustafsson wrote:

   This port is broken, it does not call cnpollc() before calling cngetc().
   This should be fixed, but it will work anyway (for now).

This part should be easy to fix, but first...
   panic: kernel diagnostic assertion "mutex_owned(&sc->sx_lock)" failed: file 
"/tmp/bracket/build/2013.09.12.07.26.13-amd64/sys/dev/usb/ehci.c", line 3302

The KASSERT misses the polling case which you've clearly entered.

Nick
Index: sys/dev/usb/ehci.c
===================================================================
RCS file: /cvsroot/src/sys/dev/usb/ehci.c,v
retrieving revision 1.219
diff -u -p -u -r1.219 ehci.c
--- sys/dev/usb/ehci.c  26 Nov 2013 05:54:43 -0000      1.219
+++ sys/dev/usb/ehci.c  30 Nov 2013 13:11:50 -0000
@@ -3296,7 +3296,7 @@ ehci_device_ctrl_done(usbd_xfer_handle x
 
        DPRINTFN(10,("ehci_ctrl_done: xfer=%p\n", xfer));
 
-       KASSERT(mutex_owned(&sc->sc_lock));
+       KASSERT(sc->sc_bus.use_polling || mutex_owned(&sc->sc_lock));
 
 #ifdef DIAGNOSTIC
        if (!(xfer->rqflags & URQ_REQUEST)) {



Home | Main Index | Thread Index | Old Index