aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorNick Hibma <n_hibma@FreeBSD.org>1999-01-22 00:59:52 +0000
committerNick Hibma <n_hibma@FreeBSD.org>1999-01-22 00:59:52 +0000
commitab521a755ebde580015c10a7756e85ee4d3738c5 (patch)
treee59ae9a876ac7c2fff8b086a0c2c3d200e3d5cdc /sys/dev
parent066f67b1ac5378a13fbaedce92f19b9c0361aab3 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/ums.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/usb/ums.c b/sys/dev/usb/ums.c
index cc969e43401a7..5e61216971bd9 100644
--- a/sys/dev/usb/ums.c
+++ b/sys/dev/usb/ums.c
@@ -377,8 +377,10 @@ ums_detach(device_t self)
struct ums_softc *sc = device_get_softc(self);
char *devinfo = (char *) device_get_desc(self);
- usbd_abort_pipe(sc->sc_intrpipe);
- usbd_close_pipe(sc->sc_intrpipe);
+ if (sc->sc_enabled) {
+ usbd_abort_pipe(sc->sc_intrpipe);
+ usbd_close_pipe(sc->sc_intrpipe);
+ }
sc->sc_disconnected = 1;
DPRINTF(("%s: disconnected\n", USBDEVNAME(self)));
@@ -638,6 +640,9 @@ ums_read(dev_t dev, struct uio *uio, int flag)
if (error) {
splx(s);
return error;
+ } else if (!sc->sc_enabled) {
+ splx(s);
+ return EINTR;
}
}