2013-09-23 09:11:35

by Stanislaw Gruszka

[permalink] [raw]
Subject: [PATCH 3.12] Revert "rt2x00pci: Use PCI MSIs whenever possible"

This reverts commit 9483f40d8d01918b399b4e24d0c1111db0afffeb.

Some devices stop to connect with above commit, see:
https://bugzilla.kernel.org/show_bug.cgi?id=61621

Since there is no clear benefit of having MSI enabled, just revert
change to fix the problem.

Cc: [email protected] # 3.11+
Signed-off-by: Stanislaw Gruszka <[email protected]>
---
drivers/net/wireless/rt2x00/rt2x00pci.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
index 76d95de..dc49e52 100644
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -105,13 +105,11 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops)
goto exit_release_regions;
}

- pci_enable_msi(pci_dev);
-
hw = ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw);
if (!hw) {
rt2x00_probe_err("Failed to allocate hardware\n");
retval = -ENOMEM;
- goto exit_disable_msi;
+ goto exit_release_regions;
}

pci_set_drvdata(pci_dev, hw);
@@ -152,9 +150,6 @@ exit_free_reg:
exit_free_device:
ieee80211_free_hw(hw);

-exit_disable_msi:
- pci_disable_msi(pci_dev);
-
exit_release_regions:
pci_release_regions(pci_dev);

@@ -179,8 +174,6 @@ void rt2x00pci_remove(struct pci_dev *pci_dev)
rt2x00pci_free_reg(rt2x00dev);
ieee80211_free_hw(hw);

- pci_disable_msi(pci_dev);
-
/*
* Free the PCI device data.
*/
--
1.8.3.1



2013-09-23 17:27:35

by Gertjan van Wingerde

[permalink] [raw]
Subject: Re: [PATCH 3.12] Revert "rt2x00pci: Use PCI MSIs whenever possible"

On 09/23/13 04:08, Stanislaw Gruszka wrote:
> This reverts commit 9483f40d8d01918b399b4e24d0c1111db0afffeb.
>
> Some devices stop to connect with above commit, see:
> https://bugzilla.kernel.org/show_bug.cgi?id=61621
>
> Since there is no clear benefit of having MSI enabled, just revert
> change to fix the problem.
>
> Cc: [email protected] # 3.11+
> Signed-off-by: Stanislaw Gruszka <[email protected]>

Acked-by: Gertjan van Wingerde <[email protected]>

> ---
> drivers/net/wireless/rt2x00/rt2x00pci.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
> index 76d95de..dc49e52 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
> @@ -105,13 +105,11 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops)
> goto exit_release_regions;
> }
>
> - pci_enable_msi(pci_dev);
> -
> hw = ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw);
> if (!hw) {
> rt2x00_probe_err("Failed to allocate hardware\n");
> retval = -ENOMEM;
> - goto exit_disable_msi;
> + goto exit_release_regions;
> }
>
> pci_set_drvdata(pci_dev, hw);
> @@ -152,9 +150,6 @@ exit_free_reg:
> exit_free_device:
> ieee80211_free_hw(hw);
>
> -exit_disable_msi:
> - pci_disable_msi(pci_dev);
> -
> exit_release_regions:
> pci_release_regions(pci_dev);
>
> @@ -179,8 +174,6 @@ void rt2x00pci_remove(struct pci_dev *pci_dev)
> rt2x00pci_free_reg(rt2x00dev);
> ieee80211_free_hw(hw);
>
> - pci_disable_msi(pci_dev);
> -
> /*
> * Free the PCI device data.
> */
>


--
---
Gertjan

2013-09-23 13:42:12

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH 3.12] Revert "rt2x00pci: Use PCI MSIs whenever possible"

On Mon, 23 Sep 2013 04:08:13 +0200, Stanislaw Gruszka wrote:
>This reverts commit 9483f40d8d01918b399b4e24d0c1111db0afffeb.
>
>Some devices stop to connect with above commit, see:
>https://bugzilla.kernel.org/show_bug.cgi?id=61621
>
>Since there is no clear benefit of having MSI enabled, just revert
>change to fix the problem.
>
>Cc: [email protected] # 3.11+
>Signed-off-by: Stanislaw Gruszka <[email protected]>

Acked-by: Jakub Kicinski <[email protected]>

>---
> drivers/net/wireless/rt2x00/rt2x00pci.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
>diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
>index 76d95de..dc49e52 100644
>--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
>+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
>@@ -105,13 +105,11 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops)
> goto exit_release_regions;
> }
>
>- pci_enable_msi(pci_dev);
>-
> hw = ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw);
> if (!hw) {
> rt2x00_probe_err("Failed to allocate hardware\n");
> retval = -ENOMEM;
>- goto exit_disable_msi;
>+ goto exit_release_regions;
> }
>
> pci_set_drvdata(pci_dev, hw);
>@@ -152,9 +150,6 @@ exit_free_reg:
> exit_free_device:
> ieee80211_free_hw(hw);
>
>-exit_disable_msi:
>- pci_disable_msi(pci_dev);
>-
> exit_release_regions:
> pci_release_regions(pci_dev);
>
>@@ -179,8 +174,6 @@ void rt2x00pci_remove(struct pci_dev *pci_dev)
> rt2x00pci_free_reg(rt2x00dev);
> ieee80211_free_hw(hw);
>
>- pci_disable_msi(pci_dev);
>-
> /*
> * Free the PCI device data.
> */