HID: register debugfs entries before adding device
authorBruno Prémont <bonbons@linux-vserver.org>
Mon, 15 Mar 2010 13:55:40 +0000 (14:55 +0100)
committerJiri Kosina <jkosina@suse.cz>
Mon, 15 Mar 2010 13:55:40 +0000 (14:55 +0100)
Register debugfs entries before calling device_add() so debugfs entries are
already present when HID driver's probe function gets called on device hotplug.

Also undo debugfs entry registration if device_add() fails so status
HID_STAT_ADDED and debugfs registration status remain consistent and we don't
leak the debugfs entries.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c

index 368fbb0..7396f47 100644 (file)
@@ -1768,11 +1768,12 @@ int hid_add_device(struct hid_device *hdev)
        dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
                     hdev->vendor, hdev->product, atomic_inc_return(&id));
 
+       hid_debug_register(hdev, dev_name(&hdev->dev));
        ret = device_add(&hdev->dev);
        if (!ret)
                hdev->status |= HID_STAT_ADDED;
-
-       hid_debug_register(hdev, dev_name(&hdev->dev));
+       else
+               hid_debug_unregister(hdev);
 
        return ret;
 }