iwlagn: clean up error path in iwl_pci_probe
authorHelmut Schaa <helmut.schaa@googlemail.com>
Thu, 12 Feb 2009 17:51:03 +0000 (18:51 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Feb 2009 19:51:46 +0000 (14:51 -0500)
This avoids triggering a BUG_ON in pci_disable_msi in the error path.
Furthermore remove the first call to pci_disable_device as it is already
called at out_pci_disable_device.

Both issues were introduced in the patch "iwlagn: fix hw-rfkill while
the interface is down".

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn.c

index 397577c06c923a33514e6d545744e41b4c8f8330..87b237d48b3ca9f286c455aaae1d82e5b00d768d 100644 (file)
@@ -3612,7 +3612,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        err = sysfs_create_group(&pdev->dev.kobj, &iwl_attribute_group);
        if (err) {
                IWL_ERR(priv, "failed to create sysfs device attributes\n");
-               goto out_uninit_drv;
+               goto out_free_irq;
        }
 
        iwl_setup_deferred_work(priv);
@@ -3657,10 +3657,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
  out_remove_sysfs:
        sysfs_remove_group(&pdev->dev.kobj, &iwl_attribute_group);
+ out_free_irq:
+       free_irq(priv->pci_dev->irq, priv);
  out_disable_msi:
        pci_disable_msi(priv->pci_dev);
-       pci_disable_device(priv->pci_dev);
- out_uninit_drv:
        iwl_uninit_drv(priv);
  out_free_eeprom:
        iwl_eeprom_free(priv);