summaryrefslogtreecommitdiff
path: root/drivers/staging/dgap
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2015-07-16 18:28:19 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-07-16 10:19:55 -0700
commit174b83c0eb577d7db8f1867f1d76dc14f0b8eb40 (patch)
tree44f94f8ef1095513a6b14b78dcaca1a8f01b4007 /drivers/staging/dgap
parenteda03951c3edc1f95e974096770ee3b02df2a8f5 (diff)
staging: dgap: new arguments to dgap_stop
In a later patch we will remove the duplicate codes. But the code also needs to execute dgap_remove_driver_sysfiles() if it is being called from dgap_remove_one() but if being called fron the error path of the dgap_init_module() then the sysfiles should not be removed. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/dgap')
-rw-r--r--drivers/staging/dgap/dgap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c
index 8956228a0e52..4f07a0cae987 100644
--- a/drivers/staging/dgap/dgap.c
+++ b/drivers/staging/dgap/dgap.c
@@ -7004,7 +7004,7 @@ static void dgap_cleanup_board(struct board_t *brd)
kfree(brd);
}
-static void dgap_stop(void)
+static void dgap_stop(bool removesys, struct pci_driver *drv)
{
unsigned long lock_flags;
@@ -7013,6 +7013,8 @@ static void dgap_stop(void)
spin_unlock_irqrestore(&dgap_poll_lock, lock_flags);
del_timer_sync(&dgap_poll_timer);
+ if (removesys)
+ dgap_remove_driver_sysfiles(drv);
device_destroy(dgap_class, MKDEV(DIGI_DGAP_MAJOR, 0));
class_destroy(dgap_class);
@@ -7134,7 +7136,7 @@ static int dgap_init_module(void)
rc = pci_register_driver(&dgap_driver);
if (rc) {
- dgap_stop();
+ dgap_stop(false, NULL);
return rc;
}