The code in dgap_stop() is almost a duplicate of the code that will be executed on pci_unregister_driver(). So the error code was stopping and unregistering everything twice. Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx> --- we had a discussion about the init and error path few months back when another patch was sent. I am not able to find that discussion in lkml.org drivers/staging/dgap/dgap.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 26b0446..3a783bf 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -7133,8 +7133,10 @@ static int dgap_init_module(void) return rc; rc = pci_register_driver(&dgap_driver); - if (rc) - goto err_stop; + if (rc) { + dgap_stop(); + return rc; + } rc = dgap_create_driver_sysfiles(&dgap_driver); if (rc) @@ -7146,9 +7148,6 @@ static int dgap_init_module(void) err_unregister: pci_unregister_driver(&dgap_driver); -err_stop: - dgap_stop(); - return rc; } -- 1.8.1.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel