diff mbox series

[v5.7] iwlwifi: pcie: handle QuZ configs with killer NICs as well

Message ID iwlwifi.20200424121518.b715acfbe211.I273a098064a22577e4fca767910fd9cf0013f5cb@changeid (mailing list archive)
State Accepted
Commit f92f26f2ed2c9f92c9270c705bca96310c3cdf5a
Delegated to: Kalle Valo
Headers show
Series [v5.7] iwlwifi: pcie: handle QuZ configs with killer NICs as well | expand

Commit Message

Luca Coelho April 24, 2020, 9:20 a.m. UTC
From: Luca Coelho <luciano.coelho@intel.com>

The killer devices were left out of the checks that convert Qu-B0 to
QuZ configurations.  Add them.

Cc: stable@vger.kernel.org # v5.3+
Fixes: 5a8c31aa6357 ("iwlwifi: pcie: fix recognition of QuZ devices")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Sasha Levin April 26, 2020, 3:03 p.m. UTC | #1
Hi

[This is an automated email]

This commit has been processed because it contains a "Fixes:" tag
fixing commit: 5a8c31aa6357 ("iwlwifi: pcie: fix recognition of QuZ devices").

The bot has tested the following trees: v5.6.7, v5.4.35.

v5.6.7: Failed to apply! Possible dependencies:
    32ed101aa140 ("iwlwifi: convert all Qu with Jf devices to the new config table")
    56ba371a5288 ("iwlwifi: move the remaining 0x2526 configs to the new table")
    5e003982b07a ("iwlwifi: move AX200 devices to the new table")
    67eb556da609 ("iwlwifi: combine 9260 cfgs that only change names")
    95939551e28c ("iwlwifi: add GNSS differentiation to the device tables")
    d6f2134a3831 ("iwlwifi: add mac/rf types and 160MHz to the device tables")
    fe25b1518f72 ("iwlwifi: move TH1 devices to the new table")

v5.4.35: Failed to apply! Possible dependencies:
    32ed101aa140 ("iwlwifi: convert all Qu with Jf devices to the new config table")
    3681021fc6af ("iwlwifi: remove IWL_DEVICE_22560/IWL_DEVICE_FAMILY_22560")
    3b589d5624ce ("iwlwifi: dbg_ini: use new trigger TLV in dump flow")
    593fae3e5e90 ("iwlwifi: dbg_ini: add monitor dumping support")
    69f0e5059b09 ("iwlwifi: dbg: remove multi buffers infra")
    bfc3e9fdbfb8 ("iwlwifi: 22000: fix some indentation")
    c042f0c77f3d ("iwlwifi: allocate more receive buffers for HE devices")
    c9fe75e9f347 ("iwlwifi: dbg_ini: use new region TLV in dump flow")


NOTE: The patch will not be queued to stable trees until it is upstream.

How should we proceed with this patch?
You-Sheng Yang April 27, 2020, 6:50 a.m. UTC | #2
Hi Luca,

I have backported this to Ubuntu kernels in my ppa[1], and it doesn't
really fix firmware crash on Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless
Network Adapter (201NGW), REV=0x354 [8086:a0f0] subsystem id [1a56:1651].

[1]: https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1874685

You-Sheng Yang

On 2020-04-24 17:20, Luca Coelho wrote:
> From: Luca Coelho <luciano.coelho@intel.com>
> 
> The killer devices were left out of the checks that convert Qu-B0 to
> QuZ configurations.  Add them.
> 
> Cc: stable@vger.kernel.org # v5.3+
> Fixes: 5a8c31aa6357 ("iwlwifi: pcie: fix recognition of QuZ devices")
> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
> ---
>  drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> index 6744c0281ffb..29971c25dba4 100644
> --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> @@ -1092,6 +1092,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  			iwl_trans->cfg = &iwl_ax101_cfg_quz_hr;
>  		else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
>  			iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
> +		else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
> +			iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr;
> +		else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
> +			iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr;
>  	}
>  
>  #endif
>
You-Sheng Yang April 27, 2020, 7:07 a.m. UTC | #3
Hi,

I also bumped into this error when back porting this patch.

$ git log --graph --oneline --decorate=no \
    ubuntu/focal korg/master \
    -- drivers/net/wireless/intel/iwlwifi/pcie/drv.c
* d28fb205177d iwlwifi: assume the driver_data is a trans_cfg, but allow
full cfg
* f2e49f9481d3 iwlwifi: remove some outdated iwl22000 configurations
* ea07f3d33270 iwlwifi: allocate more receive buffers for HE devices
* 768a892b00b7 Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ
detection"
| *   fafa7424ba7d Merge tag 'iwlwifi-next-for-kalle-2020-01-11' of
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
| |\
| | * 0b295a1eb81f iwlwifi: add device name to device_info
| | * 2a612a60ab44 iwlwifi: implement a new device configuration table
| | * b3bd6416fc77 iwlwifi: assume the driver_data is a trans_cfg, but
allow full cfg
| | * 6dece0e99faa iwlwifi: remove CSR registers abstraction
| | * b81b7bd02eda iwlwifi: remove some outdated iwl22000 configurations
| | * c042f0c77f3d iwlwifi: allocate more receive buffers for HE devices
| |/
|/|
| * db5cce1afc8d Revert "iwlwifi: assign directly to iwl_trans->cfg in
QuZ detection"
|/
* 17c216ed6b9e iwlwifi: pcie: 0x2720 is qu and 0x30DC is not

d28fb205177d: ubuntu/focal
fafa7424ba7d: korg/master

And we have file difference:
=============================
$ git diff ubuntu/focal korg/master \
    -- drivers/net/wireless/intel/iwlwifi/pcie/drv.c
......
@@ -1125,17 +1145,17 @@ static int iwl_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
        /* same thing for QuZ... */
        if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) {
                if (cfg == &iwl_ax101_cfg_qu_hr)
-                       iwl_trans->cfg = &iwl_ax101_cfg_quz_hr;
+                       cfg = &iwl_ax101_cfg_quz_hr;
                else if (cfg == &iwl_ax201_cfg_qu_hr)
-                       iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
+                       cfg = &iwl_ax201_cfg_quz_hr;
                else if (cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0)
-                       iwl_trans->cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc;
+                       cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc;
                else if (cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0)
-                       iwl_trans->cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc;
+                       cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc;
                else if (cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0)
-                       iwl_trans->cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc;
+                       cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc;
                else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
-                       iwl_trans->cfg =
&iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc;
+                       cfg = &iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc;
        }

 #endif
=====================================

It seems there is a merge error in upstream merge commit fafa7424ba7d,
that it confused the meaning in commit db5cce1afc8d and b3bd6416fc77.
How do you think?

Ubuntu Focal kernel:
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal

You-Sheng Yang

On 2020-04-26 23:03, Sasha Levin wrote:
> Hi
> 
> [This is an automated email]
> 
> This commit has been processed because it contains a "Fixes:" tag
> fixing commit: 5a8c31aa6357 ("iwlwifi: pcie: fix recognition of QuZ devices").
> 
> The bot has tested the following trees: v5.6.7, v5.4.35.
> 
> v5.6.7: Failed to apply! Possible dependencies:
>     32ed101aa140 ("iwlwifi: convert all Qu with Jf devices to the new config table")
>     56ba371a5288 ("iwlwifi: move the remaining 0x2526 configs to the new table")
>     5e003982b07a ("iwlwifi: move AX200 devices to the new table")
>     67eb556da609 ("iwlwifi: combine 9260 cfgs that only change names")
>     95939551e28c ("iwlwifi: add GNSS differentiation to the device tables")
>     d6f2134a3831 ("iwlwifi: add mac/rf types and 160MHz to the device tables")
>     fe25b1518f72 ("iwlwifi: move TH1 devices to the new table")
> 
> v5.4.35: Failed to apply! Possible dependencies:
>     32ed101aa140 ("iwlwifi: convert all Qu with Jf devices to the new config table")
>     3681021fc6af ("iwlwifi: remove IWL_DEVICE_22560/IWL_DEVICE_FAMILY_22560")
>     3b589d5624ce ("iwlwifi: dbg_ini: use new trigger TLV in dump flow")
>     593fae3e5e90 ("iwlwifi: dbg_ini: add monitor dumping support")
>     69f0e5059b09 ("iwlwifi: dbg: remove multi buffers infra")
>     bfc3e9fdbfb8 ("iwlwifi: 22000: fix some indentation")
>     c042f0c77f3d ("iwlwifi: allocate more receive buffers for HE devices")
>     c9fe75e9f347 ("iwlwifi: dbg_ini: use new region TLV in dump flow")
> 
> 
> NOTE: The patch will not be queued to stable trees until it is upstream.
> 
> How should we proceed with this patch?
>
You-Sheng Yang April 27, 2020, 11:51 a.m. UTC | #4
[update]

With that cfg/iwl_trans->cfg usage corrected, this patch brings Killer
series back to live. Thank you.

Tested-by: You-Sheng Yang <vicamo@gmail.com>

On 2020-04-27 14:50, You-Sheng Yang wrote:
> Hi Luca,
> 
> I have backported this to Ubuntu kernels in my ppa[1], and it doesn't
> really fix firmware crash on Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless
> Network Adapter (201NGW), REV=0x354 [8086:a0f0] subsystem id [1a56:1651].
> 
> [1]: https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1874685
> 
> You-Sheng Yang
> 
> On 2020-04-24 17:20, Luca Coelho wrote:
>> From: Luca Coelho <luciano.coelho@intel.com>
>>
>> The killer devices were left out of the checks that convert Qu-B0 to
>> QuZ configurations.  Add them.
>>
>> Cc: stable@vger.kernel.org # v5.3+
>> Fixes: 5a8c31aa6357 ("iwlwifi: pcie: fix recognition of QuZ devices")
>> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
>> ---
>>  drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>> index 6744c0281ffb..29971c25dba4 100644
>> --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>> @@ -1092,6 +1092,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>>  			iwl_trans->cfg = &iwl_ax101_cfg_quz_hr;
>>  		else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
>>  			iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
>> +		else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
>> +			iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr;
>> +		else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
>> +			iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr;
>>  	}
>>  
>>  #endif
>>
>
Luca Coelho April 27, 2020, 12:16 p.m. UTC | #5
On Mon, 2020-04-27 at 14:50 +0800, You-Sheng Yang wrote:
> Hi Luca,
> 
> I have backported this to Ubuntu kernels in my ppa[1], and it doesn't
> really fix firmware crash on Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless
> Network Adapter (201NGW), REV=0x354 [8086:a0f0] subsystem id [1a56:1651].
> 
> [1]: https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1874685

Thanks for reporting, You-Sheng!

What is the crash that you are seeing? The same one during INIT?

Please note that on v5.6 the code is slightly different, so you need to
use cfg instead of iwl_trans->cfg.

--
Luca.
Luca Coelho April 27, 2020, 12:16 p.m. UTC | #6
On Mon, 2020-04-27 at 15:16 +0300, Luca Coelho wrote:
> On Mon, 2020-04-27 at 14:50 +0800, You-Sheng Yang wrote:
> > Hi Luca,
> > 
> > I have backported this to Ubuntu kernels in my ppa[1], and it doesn't
> > really fix firmware crash on Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless
> > Network Adapter (201NGW), REV=0x354 [8086:a0f0] subsystem id [1a56:1651].
> > 
> > [1]: https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1874685
> 
> Thanks for reporting, You-Sheng!
> 
> What is the crash that you are seeing? The same one during INIT?
> 
> Please note that on v5.6 the code is slightly different, so you need to
> use cfg instead of iwl_trans->cfg.

Oops, sorry, this was stuck in my outbox.  I see that you have already
made this change and clarified that it solves the issue.

Thanks!

--
Luca.
Kalle Valo May 8, 2020, 10:15 a.m. UTC | #7
Luca Coelho <luca@coelho.fi> wrote:

> From: Luca Coelho <luciano.coelho@intel.com>
> 
> The killer devices were left out of the checks that convert Qu-B0 to
> QuZ configurations.  Add them.
> 
> Cc: stable@vger.kernel.org # v5.3+
> Fixes: 5a8c31aa6357 ("iwlwifi: pcie: fix recognition of QuZ devices")
> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
> Tested-by: You-Sheng Yang <vicamo@gmail.com>

Patch applied to wireless-drivers.git, thanks.

f92f26f2ed2c iwlwifi: pcie: handle QuZ configs with killer NICs as well
diff mbox series

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index 6744c0281ffb..29971c25dba4 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -1092,6 +1092,10 @@  static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 			iwl_trans->cfg = &iwl_ax101_cfg_quz_hr;
 		else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
 			iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
+		else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
+			iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr;
+		else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
+			iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr;
 	}
 
 #endif