diff options
author | Jia-Ju Bai <baijiaju1990@163.com> | 2016-01-04 15:55:38 +0800 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2016-01-07 11:22:46 +0200 |
commit | 7683fe016c010a20b5f2d88b7d8dad198506f5f7 (patch) | |
tree | ba52f44e3b2d3185e435fc7c77784f5c94b41e16 /drivers/net/wireless/ralink/rt2x00/rt2x00pci.c | |
parent | 8ba83d4daab9b71dd27da3765f34d1ffa1fee2ec (diff) | |
download | lwn-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.c | 2 |
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); } |