Fw: usb problems - try this patch
Paul Horechuk
phorechuk at docucom.ca
Fri Sep 26 04:53:41 PDT 2003
The patch worked great. Thanks.
----- Original Message -----
From: "Paul Horechuk" <phorechuk at docucom.ca>
To: "Andrew Atrens" <atrens at 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 at nortelnetworks.com>
> To: "Paul Horechuk" <phorechuk at 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 {
> >
>
More information about the freebsd-stable
mailing list