summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2009-09-05 10:25:56 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2009-09-05 10:25:56 +0000
commit3827cf56b00ca00fc161a595b725a2456190dd23 (patch)
treeb06580f42ed7bf825454136afe279a838ceb67f0
parente49b2a758e03e2e237eb4ca367e25b9e0859f454 (diff)
Make sure ehci_open() invokes ehci_device_setintr() at splusb; found with
splassert.
-rw-r--r--sys/dev/usb/ehci.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/usb/ehci.c b/sys/dev/usb/ehci.c
index 974083b0de7..d4811bfb16d 100644
--- a/sys/dev/usb/ehci.c
+++ b/sys/dev/usb/ehci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ehci.c,v 1.101 2009/07/24 08:15:38 blambert Exp $ */
+/* $OpenBSD: ehci.c,v 1.102 2009/09/05 10:25:55 miod Exp $ */
/* $NetBSD: ehci.c,v 1.66 2004/06/30 03:11:56 mycroft Exp $ */
/*
@@ -1592,7 +1592,10 @@ ehci_open(usbd_pipe_handle pipe)
ival = pipe->interval;
if (ival == USBD_DEFAULT_INTERVAL)
ival = ed->bInterval;
- return (ehci_device_setintr(sc, sqh, ival));
+ s = splusb();
+ err = ehci_device_setintr(sc, sqh, ival);
+ splx(s);
+ return (err);
case UE_ISOCHRONOUS:
pipe->methods = &ehci_device_isoc_methods;
if (ed->bInterval == 0 || ed->bInterval > 16) {