diff options
author | iedowse <iedowse@FreeBSD.org> | 2003-03-11 09:12:55 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2003-03-11 09:12:55 +0000 |
commit | 7808f3fb4f033edb19828d0347aed2b53dd323b7 (patch) | |
tree | 367079608a876b3f1d55c2ab83956c8007c935a8 /sys/dev/usb/uhci.c | |
parent | 7f82e9791ff4814550731b5f9ccd9ed5daa4b396 (diff) | |
download | FreeBSD-src-7808f3fb4f033edb19828d0347aed2b53dd323b7.zip FreeBSD-src-7808f3fb4f033edb19828d0347aed2b53dd323b7.tar.gz |
Make uhci_waitintr() robust to interrupts being enabled, even though
it is expected that they will not be enabled at the time that it
is called. This is reported to work around a problem in RELENG_4
where the kernel panics on boot if FAST_IPSEC and crypto support
are enabled.
Tested by: Scott Johnson <scottj@insane.com>
Diffstat (limited to 'sys/dev/usb/uhci.c')
-rw-r--r-- | sys/dev/usb/uhci.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c index 4bb24a1..34012f1 100644 --- a/sys/dev/usb/uhci.c +++ b/sys/dev/usb/uhci.c @@ -1511,11 +1511,10 @@ uhci_waitintr(uhci_softc_t *sc, usbd_xfer_handle xfer) for (; timo >= 0; timo--) { usb_delay_ms(&sc->sc_bus, 1); DPRINTFN(20,("uhci_waitintr: 0x%04x\n", UREAD2(sc, UHCI_STS))); - if (UREAD2(sc, UHCI_STS) & UHCI_STS_USBINT) { + if (UREAD2(sc, UHCI_STS) & UHCI_STS_USBINT) uhci_intr1(sc); - if (xfer->status != USBD_IN_PROGRESS) - return; - } + if (xfer->status != USBD_IN_PROGRESS) + return; } /* Timeout */ |