Преглед на файлове

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>
Dmitry Torokhov преди 18 години
родител
ревизия
655816e498
променени са 1 файла, в които са добавени 2 реда и са изтрити 2 реда
  1. 2 2
      drivers/input/input.c

+ 2 - 2
drivers/input/input.c

@@ -912,6 +912,8 @@ struct input_dev *input_allocate_device(void)
 		mutex_init(&dev->mutex);
 		INIT_LIST_HEAD(&dev->h_list);
 		INIT_LIST_HEAD(&dev->node);
+
+		__module_get(THIS_MODULE);
 	}
 
 	return dev;
@@ -985,8 +987,6 @@ int input_register_device(struct input_dev *dev)
 	if (error)
 		goto fail3;
 
-	__module_get(THIS_MODULE);
-
 	path = kobject_get_path(&dev->cdev.kobj, GFP_KERNEL);
 	printk(KERN_INFO "input: %s as %s\n",
 		dev->name ? dev->name : "Unspecified device", path ? path : "N/A");