aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/input.h
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor_core@ameritech.net>2006-06-26 01:48:36 -0400
committerDmitry Torokhov <dtor_core@ameritech.net>2006-06-26 01:48:36 -0400
commitf60d2b111cd55c335c2b70e50d66a612d2b10856 (patch)
tree95ec2063e270ad8f87ab07d507d4c20affacb2a5 /include/linux/input.h
parent8a3cf456adbde8317a15fc038cfe82c630512f2e (diff)
Input: reset name, phys and uniq when unregistering
Name, phys and uniq are quite often constant strings in moules implementing particular input device. If a module unregisters input device and then gets unloaded, the device could still be present in memory (pinned via sysfs), but aforementioned members would point to some random memory. Set them all to NULL when unregistering so sysfs handlers won't try dereferencing them. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'include/linux/input.h')
-rw-r--r--include/linux/input.h7
1 files changed, 1 insertions, 6 deletions
diff --git a/include/linux/input.h b/include/linux/input.h
index b32c2b6e53f6..8d2b874d9e72 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -1005,6 +1005,7 @@ static inline void init_input_dev(struct input_dev *dev)
1005} 1005}
1006 1006
1007struct input_dev *input_allocate_device(void); 1007struct input_dev *input_allocate_device(void);
1008void input_free_device(struct input_dev *dev);
1008 1009
1009static inline struct input_dev *input_get_device(struct input_dev *dev) 1010static inline struct input_dev *input_get_device(struct input_dev *dev)
1010{ 1011{
@@ -1016,12 +1017,6 @@ static inline void input_put_device(struct input_dev *dev)
1016 class_device_put(&dev->cdev); 1017 class_device_put(&dev->cdev);
1017} 1018}
1018 1019
1019static inline void input_free_device(struct input_dev *dev)
1020{
1021 if (dev)
1022 input_put_device(dev);
1023}
1024
1025int input_register_device(struct input_dev *); 1020int input_register_device(struct input_dev *);
1026void input_unregister_device(struct input_dev *); 1021void input_unregister_device(struct input_dev *);
1027 1022