diff options
author | Christopher Pascoe <pascoe@cvs.openbsd.org> | 2006-08-14 00:32:11 +0000 |
---|---|---|
committer | Christopher Pascoe <pascoe@cvs.openbsd.org> | 2006-08-14 00:32:11 +0000 |
commit | ec523fd888e112e001a5c3907b9829daac5fa0c2 (patch) | |
tree | cfb1cb4a876248e3db07528bd812b927cc7a5d9b /sys/dev/usb/usbdi.c | |
parent | 60d349f288eb853474c709137ab21b9cb4683b19 (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.c | 4 |
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); |