diff --git a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp index 4cf9d0cb3f..3c648045a1 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp @@ -89,8 +89,6 @@ KeyboardDevice::Control(uint32 op, void *buffer, size_t length) // the next timeout is reduced to the repeat_rate fCurrentRepeatDelay = fRepeatRate; break; - } else if (result == B_INTERRUPTED && IsOpen()) { - continue; } else return result; } diff --git a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp index e42e5e4f75..c038d2e61e 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp @@ -45,10 +45,8 @@ MouseDevice::Control(uint32 op, void *buffer, size_t length) // NOTE: this thread is now blocking until the semaphore is // released in the callback function status_t result = acquire_sem_etc(fTransferNotifySem, 1, - B_CAN_INTERRUPT, 0); - if (result == B_INTERRUPTED && IsOpen()) - continue; - else if (result != B_OK) + B_CAN_INTERRUPT, B_INFINITE_TIMEOUT); + if (result != B_OK) return result; result = _InterpretBuffer();