All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.2] iwlwifi: mvm: disable TX-AMSDU on older NICs
@ 2019-08-22 18:00 Luca Coelho
  2019-08-26  1:29 ` Sasha Levin
  0 siblings, 1 reply; 2+ messages in thread
From: Luca Coelho @ 2019-08-22 18:00 UTC (permalink / raw
  To: stable

From: Johannes Berg <johannes.berg@intel.com>

commit cfb21b11b891b08b79be07be57c40a85bb926668 upstream.

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>
---
 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 964c7baabede..3905770b8a1f 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -474,7 +474,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.23.0.rc1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 5.2] iwlwifi: mvm: disable TX-AMSDU on older NICs
  2019-08-22 18:00 [PATCH 5.2] iwlwifi: mvm: disable TX-AMSDU on older NICs Luca Coelho
@ 2019-08-26  1:29 ` Sasha Levin
  0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2019-08-26  1:29 UTC (permalink / raw
  To: Luca Coelho; +Cc: stable

On Thu, Aug 22, 2019 at 09:00:54PM +0300, Luca Coelho wrote:
>From: Johannes Berg <johannes.berg@intel.com>
>
>commit cfb21b11b891b08b79be07be57c40a85bb926668 upstream.
>
>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>

It applied as is from Linus's tree, so I just took it directly from
there to 5.2, thank you.

--
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-08-26  1:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-22 18:00 [PATCH 5.2] iwlwifi: mvm: disable TX-AMSDU on older NICs Luca Coelho
2019-08-26  1:29 ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.