Commit 7683fe01 authored by Jia-Ju Bai's avatar Jia-Ju Bai Committed by Kalle Valo

rt2x00pci: Disable memory-write-invalidate when the driver exits

The driver calls pci_set_mwi to enable memory-write-invalidate when it
is initialized, but does not call pci_clear_mwi when it is removed. Many
other drivers calls pci_clear_mwi when pci_set_mwi is called, such as
r8169, 8139cp and e1000.

This patch adds pci_clear_mwi in error handling and removal procedure,
which can fix the problem.
Signed-off-by: default avatarJia-Ju Bai <baijiaju1990@163.com>
Acked-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 8ba83d4d
...@@ -149,6 +149,7 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops) ...@@ -149,6 +149,7 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops)
ieee80211_free_hw(hw); ieee80211_free_hw(hw);
exit_release_regions: exit_release_regions:
pci_clear_mwi(pci_dev);
pci_release_regions(pci_dev); pci_release_regions(pci_dev);
exit_disable_device: exit_disable_device:
...@@ -173,6 +174,7 @@ void rt2x00pci_remove(struct pci_dev *pci_dev) ...@@ -173,6 +174,7 @@ void rt2x00pci_remove(struct pci_dev *pci_dev)
/* /*
* Free the PCI device data. * Free the PCI device data.
*/ */
pci_clear_mwi(pci_dev);
pci_disable_device(pci_dev); pci_disable_device(pci_dev);
pci_release_regions(pci_dev); pci_release_regions(pci_dev);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment