From: Johannes Berg Date: Fri, 10 May 2019 10:35:17 +0000 (+0200) Subject: iwlwifi: fix module init error paths X-Git-Tag: v5.3-rc1~140^2~52^2~1^2~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ee3399e5230c5a22185aefb2cbfffdfe0f46dd7c;p=thirdparty%2Fkernel%2Flinux.git iwlwifi: fix module init error paths When the module fails to initialize for some reason, it doesn't clean up properly. Fix that. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho --- diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c index 4d6249b7bb0d4..063313f4a9920 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c @@ -1745,7 +1745,7 @@ IWL_EXPORT_SYMBOL(iwl_opmode_deregister); static int __init iwl_drv_init(void) { - int i; + int i, err; mutex_init(&iwlwifi_opmode_table_mtx); @@ -1760,7 +1760,17 @@ static int __init iwl_drv_init(void) iwl_dbgfs_root = debugfs_create_dir(DRV_NAME, NULL); #endif - return iwl_pci_register_driver(); + err = iwl_pci_register_driver(); + if (err) + goto cleanup_debugfs; + + return 0; + +cleanup_debugfs: +#ifdef CONFIG_IWLWIFI_DEBUGFS + debugfs_remove_recursive(iwl_dbgfs_root); +#endif + return err; } module_init(iwl_drv_init);