浏览代码

HID: hiddev, fix lock imbalance

Add omitted BKL to one switch/case.

Cc: Stable <stable@kernel.org>
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby 16 年之前
父节点
当前提交
4859484b09
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/hid/usbhid/hiddev.c

+ 3 - 1
drivers/hid/usbhid/hiddev.c

@@ -527,8 +527,10 @@ static noinline int hiddev_ioctl_usage(struct hiddev *hiddev, unsigned int cmd,
 			goto goodreturn;
 			goto goodreturn;
 
 
 		case HIDIOCGCOLLECTIONINDEX:
 		case HIDIOCGCOLLECTIONINDEX:
+			i = field->usage[uref->usage_index].collection_index;
+			unlock_kernel();
 			kfree(uref_multi);
 			kfree(uref_multi);
-			return field->usage[uref->usage_index].collection_index;
+			return i;
 		case HIDIOCGUSAGES:
 		case HIDIOCGUSAGES:
 			for (i = 0; i < uref_multi->num_values; i++)
 			for (i = 0; i < uref_multi->num_values; i++)
 				uref_multi->values[i] =
 				uref_multi->values[i] =