From: Dmitry Torokhov Date: Thu, 14 Sep 2006 05:32:14 +0000 (-0400) Subject: Input: fix input module refcounting X-Git-Tag: v2.6.19-rc1~375^2~8 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=655816e49867082d13ece0da31d76e12cc0de4a5;p=linux-2.6 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 --- diff --git a/drivers/input/input.c b/drivers/input/input.c index 4954c790cc..f2c85a60a0 100644 --- a/drivers/input/input.c +++ b/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");