summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/uhci.c
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2003-03-11 09:12:55 +0000
committeriedowse <iedowse@FreeBSD.org>2003-03-11 09:12:55 +0000
commit7808f3fb4f033edb19828d0347aed2b53dd323b7 (patch)
tree367079608a876b3f1d55c2ab83956c8007c935a8 /sys/dev/usb/uhci.c
parent7f82e9791ff4814550731b5f9ccd9ed5daa4b396 (diff)
downloadFreeBSD-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.c7
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 */
OpenPOWER on IntegriCloud