--- src/sys/dev/usbmisc/ulpt/ulpt.c 2004/12/24 04:52:19 1.11 +++ src/sys/dev/usbmisc/ulpt/ulpt.c 2005/06/02 20:40:58 1.12 @@ -61,6 +61,7 @@ #include #include #include +#include #include #include @@ -375,7 +376,6 @@ ulpt_activate(device_ptr_t self, enum de USB_DETACH(ulpt) { USB_DETACH_START(ulpt, sc); - int s; #if defined(__NetBSD__) || defined(__OpenBSD__) int maj, mn; #endif @@ -397,7 +397,7 @@ USB_DETACH(ulpt) * close things down. */ - s = splusb(); + crit_enter(); --sc->sc_refcnt; if (sc->sc_refcnt >= 0) { printf("%s: waiting for idle\n", USBDEVNAME(sc->sc_dev)); @@ -405,7 +405,7 @@ USB_DETACH(ulpt) usb_detach_wait(USBDEV(sc->sc_dev)); printf("%s: idle wait done\n", USBDEVNAME(sc->sc_dev)); } - splx(s); + crit_exit(); #if defined(__NetBSD__) || defined(__OpenBSD__) /* locate the major number */