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>
This commit is contained in:
parent
eda03951c3
commit
174b83c0eb
1 changed files with 4 additions and 2 deletions
|
@ -7004,7 +7004,7 @@ static void dgap_cleanup_board(struct board_t *brd)
|
||||||
kfree(brd);
|
kfree(brd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dgap_stop(void)
|
static void dgap_stop(bool removesys, struct pci_driver *drv)
|
||||||
{
|
{
|
||||||
unsigned long lock_flags;
|
unsigned long lock_flags;
|
||||||
|
|
||||||
|
@ -7013,6 +7013,8 @@ static void dgap_stop(void)
|
||||||
spin_unlock_irqrestore(&dgap_poll_lock, lock_flags);
|
spin_unlock_irqrestore(&dgap_poll_lock, lock_flags);
|
||||||
|
|
||||||
del_timer_sync(&dgap_poll_timer);
|
del_timer_sync(&dgap_poll_timer);
|
||||||
|
if (removesys)
|
||||||
|
dgap_remove_driver_sysfiles(drv);
|
||||||
|
|
||||||
device_destroy(dgap_class, MKDEV(DIGI_DGAP_MAJOR, 0));
|
device_destroy(dgap_class, MKDEV(DIGI_DGAP_MAJOR, 0));
|
||||||
class_destroy(dgap_class);
|
class_destroy(dgap_class);
|
||||||
|
@ -7134,7 +7136,7 @@ static int dgap_init_module(void)
|
||||||
|
|
||||||
rc = pci_register_driver(&dgap_driver);
|
rc = pci_register_driver(&dgap_driver);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
dgap_stop();
|
dgap_stop(false, NULL);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue