Browse Source

iwlagn: merge iwl_pci_down and iwl_pci_remove

The latter was the only place that called the first. The two
functions were split when the iwl_pci_probe called iwl_pci_down
upon failure in the probe. Since iwl_pci_probe undoes its work by
itself, there is no need to split between iwl_pci_down, and
iwl_pci_remove.

Thanks to Pavel Roskin for pointing that out.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Emmanuel Grumbach 14 years ago
parent
commit
65e291acd8
1 changed files with 6 additions and 12 deletions
  1. 6 12
      drivers/net/wireless/iwlwifi/iwl-pci.c

+ 6 - 12
drivers/net/wireless/iwlwifi/iwl-pci.c

@@ -483,9 +483,13 @@ out_no_pci:
 	return err;
 }
 
-static void iwl_pci_down(struct iwl_bus *bus)
+static void __devexit iwl_pci_remove(struct pci_dev *pdev)
 {
-	struct iwl_pci_bus *pci_bus = (struct iwl_pci_bus *) bus->bus_specific;
+	struct iwl_shared *shrd = pci_get_drvdata(pdev);
+	struct iwl_bus *bus = shrd->bus;
+	struct iwl_pci_bus *pci_bus = IWL_BUS_GET_PCI_BUS(bus);
+
+	iwl_remove(shrd->priv);
 
 	pci_disable_msi(pci_bus->pci_dev);
 	pci_iounmap(pci_bus->pci_dev, pci_bus->hw_base);
@@ -496,16 +500,6 @@ static void iwl_pci_down(struct iwl_bus *bus)
 	kfree(bus);
 }
 
-static void __devexit iwl_pci_remove(struct pci_dev *pdev)
-{
-	struct iwl_shared *shrd = pci_get_drvdata(pdev);
-	struct iwl_bus *bus = shrd->bus;
-
-	iwl_remove(shrd->priv);
-
-	iwl_pci_down(bus);
-}
-
 #ifdef CONFIG_PM_SLEEP
 
 static int iwl_pci_suspend(struct device *device)