--- drivers/hid/hidraw.c
+++ drivers/hid/hidraw.c
@@ -211,14 +211,11 @@ static int hidraw_release(struct inode *
unsigned int minor = iminor(inode);
struct hidraw *dev;
struct hidraw_list *list = file->private_data;
- int ret;
- mutex_lock(&minors_lock);
if (!hidraw_table[minor]) {
printk(KERN_EMERG "hidraw device with minor %d doesn't exist\n",
minor);
- ret = -ENODEV;
- goto unlock;
+ return -ENODEV;
}
list_del(&list->node);
@@ -232,12 +229,10 @@ static int hidraw_release(struct inode *
kfree(list->hidraw);
}
}
+
kfree(list);
- ret = 0;
-unlock:
- mutex_unlock(&minors_lock);
- return ret;
+ return 0;
}
static long hidraw_ioctl(struct file *file, unsigned int cmd,