diff options
author | Jiri Kosina <jkosina@suse.cz> | 2009-01-07 07:25:36 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 14:30:57 -0500 |
commit | 76052749143d03006271cc0ce8205ad756917062 (patch) | |
tree | 35cc5bdd4588513f4ae1a7fde32ff8b037de883a | |
parent | 940fbf411e5fb42aee8ab7dd814b24080951dbfc (diff) |
HID: fix hid->hiddev initialization in hiddev_connect()
Commit 079034073fa ("HID: hiddev cleanup -- handle all error conditions
properly") by mistake removed proper initialization of hid->hiddev pointer
in hiddev_connect() in case usb_register_dev() succeeds for the hiddev node.
Put it properly back in place.
Reported-and-tested-by: Gabriel C <nix.or.die@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/hid/usbhid/hiddev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index 6a98f9f572b0..d73eea382ab3 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c | |||
@@ -874,12 +874,14 @@ int hiddev_connect(struct hid_device *hid, unsigned int force) | |||
874 | INIT_LIST_HEAD(&hiddev->list); | 874 | INIT_LIST_HEAD(&hiddev->list); |
875 | spin_lock_init(&hiddev->list_lock); | 875 | spin_lock_init(&hiddev->list_lock); |
876 | mutex_init(&hiddev->existancelock); | 876 | mutex_init(&hiddev->existancelock); |
877 | hid->hiddev = hiddev; | ||
877 | hiddev->hid = hid; | 878 | hiddev->hid = hid; |
878 | hiddev->exist = 1; | 879 | hiddev->exist = 1; |
879 | 880 | ||
880 | retval = usb_register_dev(usbhid->intf, &hiddev_class); | 881 | retval = usb_register_dev(usbhid->intf, &hiddev_class); |
881 | if (retval) { | 882 | if (retval) { |
882 | err_hid("Not able to get a minor for this device."); | 883 | err_hid("Not able to get a minor for this device."); |
884 | hid->hiddev = NULL; | ||
883 | kfree(hiddev); | 885 | kfree(hiddev); |
884 | return -1; | 886 | return -1; |
885 | } else { | 887 | } else { |