HID: fix hid->hiddev initialization in hiddev_connect()
Commit 079034073f
("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>
This commit is contained in:
parent
940fbf411e
commit
7605274914
|
@ -874,12 +874,14 @@ int hiddev_connect(struct hid_device *hid, unsigned int force)
|
||||||
INIT_LIST_HEAD(&hiddev->list);
|
INIT_LIST_HEAD(&hiddev->list);
|
||||||
spin_lock_init(&hiddev->list_lock);
|
spin_lock_init(&hiddev->list_lock);
|
||||||
mutex_init(&hiddev->existancelock);
|
mutex_init(&hiddev->existancelock);
|
||||||
|
hid->hiddev = hiddev;
|
||||||
hiddev->hid = hid;
|
hiddev->hid = hid;
|
||||||
hiddev->exist = 1;
|
hiddev->exist = 1;
|
||||||
|
|
||||||
retval = usb_register_dev(usbhid->intf, &hiddev_class);
|
retval = usb_register_dev(usbhid->intf, &hiddev_class);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
err_hid("Not able to get a minor for this device.");
|
err_hid("Not able to get a minor for this device.");
|
||||||
|
hid->hiddev = NULL;
|
||||||
kfree(hiddev);
|
kfree(hiddev);
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue