Date: Fri, 26 Sep 2003 07:48:48 -0400 From: "Paul Horechuk" <phorechuk@docucom.ca> To: <atrens@nortelnetworks.com> Cc: freebsd-stable@FreeBSD.ORG Subject: Fw: usb problems - try this patch Message-ID: <05b601c38424$25ff8e20$73f8d7a5@docucom.ca>
next in thread | raw e-mail | index | archive | help
The patch worked great. Thanks. ----- Original Message ----- From: "Paul Horechuk" <phorechuk@docucom.ca> To: "Andrew Atrens" <atrens@nortelnetworks.com> Sent: September 25, 2003 7:47 AM Subject: Re: usb problems - try this patch > Thanks, I'll check it out tonight. > > ----- Original Message ----- > From: "Andrew Atrens" <atrens@nortelnetworks.com> > To: "Paul Horechuk" <phorechuk@docucom.ca> > Sent: September 25, 2003 12:02 AM > Subject: usb problems - try this patch > > > > > > Hi Paul, > > > > The patch is attached. Works for me... Let me know if it works for > you ... > > > > Cheers, > > > > Andrew. > > > > > -------------------------------------------------------------------- -- > ---------- > > > > --- dev/usb.old/usb.c Mon Aug 25 21:22:33 2003 > > +++ dev/usb/usb.c Wed Sep 24 23:22:56 2003 > > @@ -243,11 +243,24 @@ > > * Turning this code off will delay attachment of USB devices > > * until the USB event thread is running, which means that > > * the keyboard will not work until after cold boot. > > + * > > + * On nForce2/ohci interrupts get enabled while use_polling > > + * is set to true. When this happens the cpu spins servicing > > + * the interrupt routine repeatedly and the restart locks > > + * solid. This appears to be a race condition as it only > > + * happens when devices are connected prior to boot - indeed > > + * with no devices attached the lockup doesn't happen. > > + * > > + * Don't take any chances and use splusb() to make sure we > > + * don't start receiving interrupts before we are ready for > > + * them ... > > */ > > if (cold) { > > + int s = splusb(); > > sc->sc_bus->use_polling++; > > dev->hub->explore(sc->sc_bus->root_hub); > > sc->sc_bus->use_polling--; > > + splx( s ); > > } > > #endif > > } else { > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?05b601c38424$25ff8e20$73f8d7a5>