Input: fix input module refcounting
Now that input_free_device is basically an alias for input_put_device we need to acquire a reference to input module right when we allocate device because input_dev_release releases reference to input module unconditionally. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
@@ -912,6 +912,8 @@ struct input_dev *input_allocate_device(void)
|
|||||||
mutex_init(&dev->mutex);
|
mutex_init(&dev->mutex);
|
||||||
INIT_LIST_HEAD(&dev->h_list);
|
INIT_LIST_HEAD(&dev->h_list);
|
||||||
INIT_LIST_HEAD(&dev->node);
|
INIT_LIST_HEAD(&dev->node);
|
||||||
|
|
||||||
|
__module_get(THIS_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dev;
|
return dev;
|
||||||
@@ -985,8 +987,6 @@ int input_register_device(struct input_dev *dev)
|
|||||||
if (error)
|
if (error)
|
||||||
goto fail3;
|
goto fail3;
|
||||||
|
|
||||||
__module_get(THIS_MODULE);
|
|
||||||
|
|
||||||
path = kobject_get_path(&dev->cdev.kobj, GFP_KERNEL);
|
path = kobject_get_path(&dev->cdev.kobj, GFP_KERNEL);
|
||||||
printk(KERN_INFO "input: %s as %s\n",
|
printk(KERN_INFO "input: %s as %s\n",
|
||||||
dev->name ? dev->name : "Unspecified device", path ? path : "N/A");
|
dev->name ? dev->name : "Unspecified device", path ? path : "N/A");
|
||||||
|
Reference in New Issue
Block a user