usb/81524 : panic: usb_cold_explore: busses to explore when !cold

Eugene Grosbein eugen at grosbein.pp.ru
Mon Feb 27 20:20:11 PST 2006


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

From: Eugene Grosbein <eugen at grosbein.pp.ru>
To: Ian Dowse <iedowse at iedowse.com>
Cc: bug-followup at freebsd.org
Subject: Re: usb/81524 : panic: usb_cold_explore: busses to explore when !cold
Date: Tue, 28 Feb 2006 11:11:55 +0700

 On Tue, Feb 28, 2006 at 02:17:07AM +0000, Ian Dowse wrote:
 
 > Oops, I must have missed updating to 1.26.2.14, so I didn't see
 > that polling mode had been commented out. Could you try this patch
 > instead?
 > 
 > Thanks,
 > 
 > Ian
 > 
 > Index: usb.c
 > ===================================================================
 > RCS file: /home/iedowse/CVS/src/sys/dev/usb/usb.c,v
 > retrieving revision 1.26.2.14
 > diff -u -r1.26.2.14 usb.c
 > --- usb.c	16 May 2005 09:39:25 -0000	1.26.2.14
 > +++ usb.c	28 Feb 2006 02:10:46 -0000
 > @@ -961,6 +961,7 @@
 >  usb_cold_explore(void *arg)
 >  {
 >  	struct usb_softc *sc;
 > +	int s;
 >  
 >  	KASSERT(cold || TAILQ_EMPTY(&usb_coldexplist),
 >  	    ("usb_cold_explore: busses to explore when !cold"));
 > @@ -968,15 +969,17 @@
 >  		sc = TAILQ_FIRST(&usb_coldexplist);
 >  		TAILQ_REMOVE(&usb_coldexplist, sc, sc_coldexplist);
 >  
 > -/* 		sc->sc_bus->use_polling++; */
 > +		s = splusb();
 > +		sc->sc_bus->use_polling++;
 >  		sc->sc_port.device->hub->explore(sc->sc_bus->root_hub);
 > -/* 		sc->sc_bus->use_polling--; */
 > +		sc->sc_bus->use_polling--;
 > +		splx(s);
 >  	}
 >  }
 >  
 >  DRIVER_MODULE(usb, ohci, usb_driver, usb_devclass, 0, 0);
 >  DRIVER_MODULE(usb, uhci, usb_driver, usb_devclass, 0, 0);
 >  DRIVER_MODULE(usb, ehci, usb_driver, usb_devclass, 0, 0);
 > -SYSINIT(usb_cold_explore, SI_SUB_INT_CONFIG_HOOKS, SI_ORDER_FIRST,
 > +SYSINIT(usb_cold_explore, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE,
 >      usb_cold_explore, NULL);
 >  #endif
 
 This patch works, thank you! No panics anymore and USB works.
 Please commit this.
 
 Eugene Grosbein


More information about the freebsd-usb mailing list