Input: do not lock device when showing name, phys and uniq

Now that sysfs attributes return -ENODEV once driver requests their
removal we do not need to handle scenario when data is deleted from
under our feet and can simplify the code.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
Dmitry Torokhov 2007-02-18 01:40:37 -05:00
parent 82dd9eff4b
commit 1efa770f8e

View File

@ -588,18 +588,9 @@ static inline void input_proc_exit(void) { }
static ssize_t input_dev_show_##name(struct class_device *dev, char *buf) \ static ssize_t input_dev_show_##name(struct class_device *dev, char *buf) \
{ \ { \
struct input_dev *input_dev = to_input_dev(dev); \ struct input_dev *input_dev = to_input_dev(dev); \
int retval; \
\ \
retval = mutex_lock_interruptible(&input_dev->mutex); \ return scnprintf(buf, PAGE_SIZE, "%s\n", \
if (retval) \ input_dev->name ? input_dev->name : ""); \
return retval; \
\
retval = scnprintf(buf, PAGE_SIZE, \
"%s\n", input_dev->name ? input_dev->name : ""); \
\
mutex_unlock(&input_dev->mutex); \
\
return retval; \
} \ } \
static CLASS_DEVICE_ATTR(name, S_IRUGO, input_dev_show_##name, NULL); static CLASS_DEVICE_ATTR(name, S_IRUGO, input_dev_show_##name, NULL);
@ -1049,10 +1040,6 @@ void input_unregister_device(struct input_dev *dev)
sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group); sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group);
sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group); sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group);
mutex_lock(&dev->mutex);
dev->name = dev->phys = dev->uniq = NULL;
mutex_unlock(&dev->mutex);
class_device_unregister(&dev->cdev); class_device_unregister(&dev->cdev);
input_wakeup_procfs_readers(); input_wakeup_procfs_readers();