diff options
-rw-r--r-- | iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch | 53 | ||||
-rw-r--r-- | kernel.spec | 7 |
2 files changed, 60 insertions, 0 deletions
diff --git a/iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch b/iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch new file mode 100644 index 000000000..2539cedfd --- /dev/null +++ b/iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch @@ -0,0 +1,53 @@ +From 3658c2832e3919b68fdba173f3d30079030542c6 Mon Sep 17 00:00:00 2001 +From: Johannes Berg <johannes.berg@intel.com> +Date: Wed, 3 Jul 2019 11:10:49 +0300 +Subject: [PATCH] iwlwifi: mvm: disable TX-AMSDU on older NICs + +On older NICs, we occasionally see issues with A-MSDU support, +where the commands in the FIFO get confused and then we see an +assert EDC because the next command in the FIFO isn't TX. + +We've tried to isolate this issue and understand where it comes +from, but haven't found any errors in building the A-MSDU in +software. + +At least for now, disable A-MSDU support on older hardware so +that users can use it again without fearing the assert. + +This fixes https://bugzilla.kernel.org/show_bug.cgi?id=203315. + +Signed-off-by: Johannes Berg <johannes.berg@intel.com> +Signed-off-by: Luca Coelho <luciano.coelho@intel.com> +Acked-by: Kalle Valo <kvalo@codeaurora.org> +--- + drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +index 6a3b11dd2edf..f9df5e3eeee7 100644 +--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c ++++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +@@ -467,7 +467,19 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm) + ieee80211_hw_set(hw, SUPPORTS_VHT_EXT_NSS_BW); + ieee80211_hw_set(hw, BUFF_MMPDU_TXQ); + ieee80211_hw_set(hw, STA_MMPDU_TXQ); +- ieee80211_hw_set(hw, TX_AMSDU); ++ /* ++ * On older devices, enabling TX A-MSDU occasionally leads to ++ * something getting messed up, the command read from the FIFO ++ * gets out of sync and isn't a TX command, so that we have an ++ * assert EDC. ++ * ++ * It's not clear where the bug is, but since we didn't used to ++ * support A-MSDU until moving the mac80211 iTXQs, just leave it ++ * for older devices. We also don't see this issue on any newer ++ * devices. ++ */ ++ if (mvm->cfg->device_family >= IWL_DEVICE_FAMILY_9000) ++ ieee80211_hw_set(hw, TX_AMSDU); + ieee80211_hw_set(hw, TX_FRAG_LIST); + + if (iwl_mvm_has_tlc_offload(mvm)) { +-- +2.21.0 + diff --git a/kernel.spec b/kernel.spec index e3ac11493..3c1e10d6b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -580,6 +580,10 @@ Patch507: 0001-Drop-that-for-now.patch # Submitted upstream at https://lkml.org/lkml/2019/4/23/89 Patch508: KEYS-Make-use-of-platform-keyring-for-module-signature.patch +# rhbz 1716334 +# https://patchwork.kernel.org/patch/11029027/ +Patch509: iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch + # END OF PATCH DEFINITIONS %endif @@ -1818,6 +1822,9 @@ fi # # %changelog +* Tue Jul 16 2019 Jeremy Cline <jcline@redhat.com> +- Fix a firmware crash in Intel 7000 and 8000 devices (rhbz 1716334) + * Tue Jul 16 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc0.git5.1 - Linux v5.2-10808-g9637d517347e |