|
@@ -923,10 +923,11 @@ void hiddev_disconnect(struct hid_device *hid)
|
|
|
usb_deregister_dev(usbhid->intf, &hiddev_class);
|
|
usb_deregister_dev(usbhid->intf, &hiddev_class);
|
|
|
|
|
|
|
|
if (hiddev->open) {
|
|
if (hiddev->open) {
|
|
|
|
|
+ mutex_unlock(&hiddev->existancelock);
|
|
|
usbhid_close(hiddev->hid);
|
|
usbhid_close(hiddev->hid);
|
|
|
wake_up_interruptible(&hiddev->wait);
|
|
wake_up_interruptible(&hiddev->wait);
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ mutex_unlock(&hiddev->existancelock);
|
|
|
kfree(hiddev);
|
|
kfree(hiddev);
|
|
|
}
|
|
}
|
|
|
- mutex_unlock(&hiddev->existancelock);
|
|
|
|
|
}
|
|
}
|