diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2006-06-27 08:30:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-27 17:05:06 -0400 |
commit | e7374e48009a15a680d53bd1f9828b9b79a8aac9 (patch) | |
tree | dd3344add0056eb8f33fde2c3ffeb4fecd0f2baa /drivers/input/input.c | |
parent | d38b69689c349f35502b92e20dafb30c62d49d63 (diff) |
Input: fix resetting name, phys and uniq when unregistering device
It should be done before calling class_device_unregister() because
it will destroy the device and free memory if there are no other
references to the device.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/input/input.c')
-rw-r--r-- | drivers/input/input.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c index de2e7546b491..a90486f5e491 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c | |||
@@ -998,12 +998,13 @@ void input_unregister_device(struct input_dev *dev) | |||
998 | sysfs_remove_group(&dev->cdev.kobj, &input_dev_caps_attr_group); | 998 | sysfs_remove_group(&dev->cdev.kobj, &input_dev_caps_attr_group); |
999 | sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group); | 999 | sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group); |
1000 | sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group); | 1000 | sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group); |
1001 | class_device_unregister(&dev->cdev); | ||
1002 | 1001 | ||
1003 | mutex_lock(&dev->mutex); | 1002 | mutex_lock(&dev->mutex); |
1004 | dev->name = dev->phys = dev->uniq = NULL; | 1003 | dev->name = dev->phys = dev->uniq = NULL; |
1005 | mutex_unlock(&dev->mutex); | 1004 | mutex_unlock(&dev->mutex); |
1006 | 1005 | ||
1006 | class_device_unregister(&dev->cdev); | ||
1007 | |||
1007 | input_wakeup_procfs_readers(); | 1008 | input_wakeup_procfs_readers(); |
1008 | } | 1009 | } |
1009 | EXPORT_SYMBOL(input_unregister_device); | 1010 | EXPORT_SYMBOL(input_unregister_device); |