From: Stephen Rothwell Date: Mon, 5 Sep 2011 04:35:16 +0000 (+1000) Subject: Merge remote-tracking branch 'wireless/master' X-Git-Tag: next-20110905~54 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=3a0c0bd6fe981b1a12c22094bc83d14ea86a28f4;p=karo-tx-linux.git Merge remote-tracking branch 'wireless/master' Conflicts: drivers/net/wireless/iwlwifi/iwl-pci.c --- 3a0c0bd6fe981b1a12c22094bc83d14ea86a28f4 diff --cc drivers/net/wireless/iwlwifi/iwl-pci.c index 2fdbffa079c1,e41f53e5c307..1e69f485bc91 --- a/drivers/net/wireless/iwlwifi/iwl-pci.c +++ b/drivers/net/wireless/iwlwifi/iwl-pci.c @@@ -478,25 -483,30 +483,25 @@@ out_no_pci return err; } -static void iwl_pci_down(struct iwl_bus *bus) -{ - struct iwl_pci_bus *pci_bus = (struct iwl_pci_bus *) bus->bus_specific; - - pci_disable_msi(pci_bus->pci_dev); - pci_iounmap(pci_bus->pci_dev, pci_bus->hw_base); - pci_release_regions(pci_bus->pci_dev); - pci_disable_device(pci_bus->pci_dev); - pci_set_drvdata(pci_bus->pci_dev, NULL); - - kfree(bus); -} - static void __devexit iwl_pci_remove(struct pci_dev *pdev) { - struct iwl_priv *priv = pci_get_drvdata(pdev); - struct iwl_bus *bus = priv->bus; + 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); + struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus); - iwl_remove(priv); + iwl_remove(shrd->priv); - iwl_pci_down(bus); + pci_disable_msi(pci_dev); + pci_iounmap(pci_dev, pci_bus->hw_base); + pci_release_regions(pci_dev); + pci_disable_device(pci_dev); + pci_set_drvdata(pci_dev, NULL); + + kfree(bus); } - #ifdef CONFIG_PM + #ifdef CONFIG_PM_SLEEP static int iwl_pci_suspend(struct device *device) {