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



The following reply was made to PR kern/48213; it has been noted by GNATS.

From: Nick Hudson <skrll%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: Andreas Gustafsson <gson%gson.org@localhost>, 
kern-bug-people%netbsd.org@localhost, 
 gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/48213: ehci assertion failure during boot
Date: Sat, 30 Nov 2013 13:16:59 +0000

 This is a multi-part message in MIME format.
 --------------070405060302030605000708
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 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
 
 --------------070405060302030605000708
 Content-Type: text/plain; charset=us-ascii;
  name="ctrl_done_polling.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="ctrl_done_polling.diff"
 
 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)) {
 
 
 --------------070405060302030605000708--
 


Home | Main Index | Thread Index | Old Index