summaryrefslogtreecommitdiff
path: root/sys/dev/usb/usbdi.c
diff options
context:
space:
mode:
authorChristopher Pascoe <pascoe@cvs.openbsd.org>2006-08-14 00:32:11 +0000
committerChristopher Pascoe <pascoe@cvs.openbsd.org>2006-08-14 00:32:11 +0000
commitec523fd888e112e001a5c3907b9829daac5fa0c2 (patch)
treecfb1cb4a876248e3db07528bd812b927cc7a5d9b /sys/dev/usb/usbdi.c
parent60d349f288eb853474c709137ab21b9cb4683b19 (diff)
Handle interrupted tsleep when waiting for synchronous transfer completion.
ok dlg@
Diffstat (limited to 'sys/dev/usb/usbdi.c')
-rw-r--r--sys/dev/usb/usbdi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c
index fe218f2ccce..d32c1436b2a 100644
--- a/sys/dev/usb/usbdi.c
+++ b/sys/dev/usb/usbdi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: usbdi.c,v 1.26 2005/09/20 08:03:59 dlg Exp $ */
+/* $OpenBSD: usbdi.c,v 1.27 2006/08/14 00:32:10 pascoe Exp $ */
/* $NetBSD: usbdi.c,v 1.103 2002/09/27 15:37:38 provos Exp $ */
/* $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $ */
@@ -334,7 +334,7 @@ usbd_transfer(usbd_xfer_handle xfer)
if (err != USBD_IN_PROGRESS)
return (err);
s = splusb();
- if (!xfer->done) {
+ while (!xfer->done) {
if (pipe->device->bus->use_polling)
panic("usbd_transfer: not done");
tsleep(xfer, PRIBIO, "usbsyn", 0);