aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hidraw.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index c79578b5a78..a8c2b7b6220 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -510,13 +510,12 @@ void hidraw_disconnect(struct hid_device *hid)
510{ 510{
511 struct hidraw *hidraw = hid->hidraw; 511 struct hidraw *hidraw = hid->hidraw;
512 512
513 mutex_lock(&minors_lock);
513 hidraw->exist = 0; 514 hidraw->exist = 0;
514 515
515 device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor)); 516 device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor));
516 517
517 mutex_lock(&minors_lock);
518 hidraw_table[hidraw->minor] = NULL; 518 hidraw_table[hidraw->minor] = NULL;
519 mutex_unlock(&minors_lock);
520 519
521 if (hidraw->open) { 520 if (hidraw->open) {
522 hid_hw_close(hid); 521 hid_hw_close(hid);
@@ -524,6 +523,7 @@ void hidraw_disconnect(struct hid_device *hid)
524 } else { 523 } else {
525 kfree(hidraw); 524 kfree(hidraw);
526 } 525 }
526 mutex_unlock(&minors_lock);
527} 527}
528EXPORT_SYMBOL_GPL(hidraw_disconnect); 528EXPORT_SYMBOL_GPL(hidraw_disconnect);
529 529