iwlwifi: release IRQ in error path
authorJohannes Berg <johannes.berg@intel.com>
Mon, 30 Jan 2012 02:36:01 +0000 (18:36 -0800)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 2 Feb 2012 22:38:34 +0000 (14:38 -0800)
smatch correctly complains:
iwl-trans-pcie.c +1528 iwl_trans_pcie_start_hw(50) warn: 'trans->irq' was not released on error

Fix it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi W Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c

index ec26950ebb554ff5cf84efd5aa613753d88a96df..836caf9c68b35c387ce5061912a725f0d82677ef 100644 (file)
@@ -1504,7 +1504,7 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
        err = iwl_prepare_card_hw(trans);
        if (err) {
                IWL_ERR(trans, "Error while preparing HW: %d", err);
-               goto error;
+               goto err_free_irq;
        }
 
        iwl_apm_init(trans);
@@ -1522,6 +1522,8 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
 
        return err;
 
+err_free_irq:
+       free_irq(trans->irq, trans);
 error:
        iwl_free_isr_ict(trans);
        tasklet_kill(&trans_pcie->irq_tasklet);