summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Winkler2012-05-29 15:39:11 +0200
committerGreg Kroah-Hartman2012-06-13 22:52:14 +0200
commita44cab4aff7e72e7052521121fd8ceca51351534 (patch)
tree2170a035f4bc242f75a523622c281e49b0d1dd7d
parentmisc: mei: set IRQF_ONESHOT for msi request_threaded_irq (diff)
downloadkernel-qcow2-linux-a44cab4aff7e72e7052521121fd8ceca51351534.tar.gz
kernel-qcow2-linux-a44cab4aff7e72e7052521121fd8ceca51351534.tar.xz
kernel-qcow2-linux-a44cab4aff7e72e7052521121fd8ceca51351534.zip
misc: mei: unregister misc device in pci_remove function
Since the misc device is registered only in the pci probe function it has to be also unregistered in the counterpart pci remove function and not in the module exit function. In case of probe failure the driver was oopsing in module exit function. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/misc/mei/main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
index 88e5953eb5be..a5a17e78a96c 100644
--- a/drivers/misc/mei/main.c
+++ b/drivers/misc/mei/main.c
@@ -1101,6 +1101,8 @@ static void __devexit mei_remove(struct pci_dev *pdev)
pci_release_regions(pdev);
pci_disable_device(pdev);
+
+ misc_deregister(&mei_misc_device);
}
#ifdef CONFIG_PM
static int mei_pci_suspend(struct device *device)
@@ -1216,7 +1218,6 @@ module_init(mei_init_module);
*/
static void __exit mei_exit_module(void)
{
- misc_deregister(&mei_misc_device);
pci_unregister_driver(&mei_driver);
pr_debug("unloaded successfully.\n");