diff options
author | 2006-08-14 00:32:10 +0000 | |
---|---|---|
committer | 2006-08-14 00:32:10 +0000 | |
commit | d4f84912b4dd41c55606b41810c310c0ec075910 (patch) | |
tree | 75d2979837aef3b2d74b09eaa570d830fadbd7ad /sys/dev/usb/usbdi.c | |
parent | Fix mismerge in PWR_RESUME path. (diff) | |
download | wireguard-openbsd-d4f84912b4dd41c55606b41810c310c0ec075910.tar.xz wireguard-openbsd-d4f84912b4dd41c55606b41810c310c0ec075910.zip |
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); |