--- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c @@ -108,7 +108,9 @@ int rt2x00pci_probe(struct pci_dev *pci_ goto exit_release_regions; } +#ifdef CONFIG_PCI_MSI pci_enable_msi(pci_dev); +#endif hw = ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw); if (!hw) { @@ -162,7 +164,9 @@ exit_free_device: ieee80211_free_hw(hw); exit_disable_msi: +#ifdef CONFIG_PCI_SET_MWI pci_disable_msi(pci_dev); +#endif exit_release_regions: pci_release_regions(pci_dev); @@ -188,7 +192,9 @@ void rt2x00pci_remove(struct pci_dev *pc rt2x00pci_free_reg(rt2x00dev); ieee80211_free_hw(hw); +#ifdef CONFIG_PCI_MSI pci_disable_msi(pci_dev); +#endif /* * Free the PCI device data.