HID: fix lock imbalance in hiddev
Jiri Slaby [Wed, 22 Oct 2008 23:47:34 +0000 (01:47 +0200)]
Don't forget to unlock_kernel() in hiddev_ioctl_usage().
Added in 7961df16819085b8a357720d89d0239036e6af2a
(HID: Switch hiddev to unlocked_ioctl).

Corresponing sparse warning:
drivers/hid/usbhid/hiddev.c:515:10: warning: context imbalance in 'hiddev_ioctl_usage': wrong count at exit
drivers/hid/usbhid/hiddev.c:515:10:    context 'kernel_lock': wanted 0, got 1

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

drivers/hid/usbhid/hiddev.c

index babd65d..3ac3207 100644 (file)
@@ -436,8 +436,7 @@ static noinline int hiddev_ioctl_usage(struct hiddev *hiddev, unsigned int cmd,
                if (copy_to_user(user_arg, uref, sizeof(*uref)))
                        goto fault;
 
-               kfree(uref_multi);
-               return 0;
+               goto goodreturn;
 
        default:
                if (cmd != HIDIOCGUSAGE &&