From: Sudip Mukherjee Date: Thu, 16 Jul 2015 12:58:19 +0000 (+0530) Subject: staging: dgap: new arguments to dgap_stop X-Git-Tag: firefly_0821_release~176^2~1221^2~541 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=174b83c0eb577d7db8f1867f1d76dc14f0b8eb40;p=firefly-linux-kernel-4.4.55.git 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 Signed-off-by: Greg Kroah-Hartman --- 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; }