summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c
diff options
context:
space:
mode:
authorJia-Ju Bai <baijiaju1990@163.com>2016-01-04 15:55:38 +0800
committerKalle Valo <kvalo@codeaurora.org>2016-01-07 11:22:46 +0200
commit7683fe016c010a20b5f2d88b7d8dad198506f5f7 (patch)
treeba52f44e3b2d3185e435fc7c77784f5c94b41e16 /drivers/net/wireless/ralink/rt2x00/rt2x00pci.c
parent8ba83d4daab9b71dd27da3765f34d1ffa1fee2ec (diff)
downloadlwn-7683fe016c010a20b5f2d88b7d8dad198506f5f7.tar.gz
lwn-7683fe016c010a20b5f2d88b7d8dad198506f5f7.zip
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: Jia-Ju Bai <baijiaju1990@163.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ralink/rt2x00/rt2x00pci.c')
-rw-r--r--drivers/net/wireless/ralink/rt2x00/rt2x00pci.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c b/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c
index d93db4b0371b..eb6dbcd4fddf 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c
@@ -149,6 +149,7 @@ exit_free_device:
ieee80211_free_hw(hw);
exit_release_regions:
+ pci_clear_mwi(pci_dev);
pci_release_regions(pci_dev);
exit_disable_device:
@@ -173,6 +174,7 @@ void rt2x00pci_remove(struct pci_dev *pci_dev)
/*
* Free the PCI device data.
*/
+ pci_clear_mwi(pci_dev);
pci_disable_device(pci_dev);
pci_release_regions(pci_dev);
}