summaryrefslogtreecommitdiffstats
path: root/iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch
diff options
context:
space:
mode:
authorJeremy Cline <jcline@redhat.com>2019-07-08 19:54:11 +0000
committerJeremy Cline <jcline@redhat.com>2019-07-16 18:21:14 +0000
commitb39937c76a01d5455566f39af66ecc57e162c46b (patch)
tree49cb575723a9d7b7249a8c07c6a9a4dcc4b40c80 /iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch
parent4cbd7a3c092b688cb6cfc75ea656e239e1793d70 (diff)
downloadkernel-b39937c76a01d5455566f39af66ecc57e162c46b.tar.gz
kernel-b39937c76a01d5455566f39af66ecc57e162c46b.tar.xz
kernel-b39937c76a01d5455566f39af66ecc57e162c46b.zip
Pick up the iwlwifi firmware crash fix (rhbz 1716334)
Some folks have been asking for this to be in Rawhide in addition to the stable kernels.
Diffstat (limited to 'iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch')
-rw-r--r--iwlwifi-mvm-disable-TX-AMSDU-on-older-NICs.patch53
1 files changed, 53 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
+