--- 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.
