aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2012-08-07 15:47:33 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-08-10 16:27:51 -0400
commit3140bae26c9105b4ec8ff4935631f2f09882553d (patch)
tree94295eeb0e1e86d3cc246fb91f5d81c34f884a7f
parent065185f604c604ce77c43d7f26faf712f0bfa265 (diff)
misc: pti, do the opposite of ->probe in ->remove
Currently, probe initializes some parts. Then, some of them are unwound in ->remove, some in module_exit. Let us do the opposite of whole ->probe in ->remove. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: J Freyensee <james_p_freyensee@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/misc/pti.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/misc/pti.c b/drivers/misc/pti.c
index 4a24421136a3..be6e6795d79d 100644
--- a/drivers/misc/pti.c
+++ b/drivers/misc/pti.c
@@ -874,11 +874,18 @@ static void __devexit pti_pci_remove(struct pci_dev *pdev)
874{ 874{
875 struct pti_dev *drv_data = pci_get_drvdata(pdev); 875 struct pti_dev *drv_data = pci_get_drvdata(pdev);
876 876
877 unregister_console(&pti_console);
878
879 tty_unregister_device(pti_tty_driver, 0);
880 tty_unregister_device(pti_tty_driver, 1);
881
877 iounmap(drv_data->pti_ioaddr); 882 iounmap(drv_data->pti_ioaddr);
878 pci_set_drvdata(pdev, NULL); 883 pci_set_drvdata(pdev, NULL);
879 kfree(drv_data); 884 kfree(drv_data);
880 pci_release_region(pdev, 1); 885 pci_release_region(pdev, 1);
881 pci_disable_device(pdev); 886 pci_disable_device(pdev);
887
888 misc_deregister(&pti_char_driver);
882} 889}
883 890
884static struct pci_driver pti_pci_driver = { 891static struct pci_driver pti_pci_driver = {
@@ -959,9 +966,6 @@ static void __exit pti_exit(void)
959{ 966{
960 int retval; 967 int retval;
961 968
962 tty_unregister_device(pti_tty_driver, 0);
963 tty_unregister_device(pti_tty_driver, 1);
964
965 retval = tty_unregister_driver(pti_tty_driver); 969 retval = tty_unregister_driver(pti_tty_driver);
966 if (retval) { 970 if (retval) {
967 pr_err("%s(%d): TTY unregistration failed of pti driver\n", 971 pr_err("%s(%d): TTY unregistration failed of pti driver\n",
@@ -971,17 +975,6 @@ static void __exit pti_exit(void)
971 } 975 }
972 976
973 pci_unregister_driver(&pti_pci_driver); 977 pci_unregister_driver(&pti_pci_driver);
974
975 retval = misc_deregister(&pti_char_driver);
976 if (retval) {
977 pr_err("%s(%d): CHAR unregistration failed of pti driver\n",
978 __func__, __LINE__);
979 pr_err("%s(%d): Error value returned: %d\n",
980 __func__, __LINE__, retval);
981 }
982
983 unregister_console(&pti_console);
984 return;
985} 978}
986 979
987module_init(pti_init); 980module_init(pti_init);