Return-path: Received: from mail-ig0-f193.google.com ([209.85.213.193]:36448 "EHLO mail-ig0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751740AbcADQui (ORCPT ); Mon, 4 Jan 2016 11:50:38 -0500 MIME-Version: 1.0 In-Reply-To: <1451894138-3482-1-git-send-email-baijiaju1990@163.com> References: <1451894138-3482-1-git-send-email-baijiaju1990@163.com> Date: Mon, 4 Jan 2016 17:50:36 +0100 Message-ID: (sfid-20160104_175119_488692_A210E02A) Subject: Re: [PATCH] rt2x00pci: Disable memory-write-invalidate when the driver exits From: Helmut Schaa To: Jia-Ju Bai Cc: Stanislaw Gruszka , kvalo@codeaurora.org, linux-wireless , netdev , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Mon, Jan 4, 2016 at 8:55 AM, Jia-Ju Bai wrote: > 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 Looks good to me. Does this fix any actual issue? If yes it might we worth to mention it in the commit message. Helmut > --- > drivers/net/wireless/rt2x00/rt2x00pci.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c > index d93db4b..eb6dbcd 100644 > --- a/drivers/net/wireless/rt2x00/rt2x00pci.c > +++ b/drivers/net/wireless/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); > } > -- > 1.7.9.5 > >