Search Linux Wireless

Re: [PATCH] mt76: mt7915: report qos_ctl without ACK policy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 20.04.22 06:03, Bo Jiao wrote:
From: Bo Jiao <Bo.Jiao@xxxxxxxxxxxx>

there is no need to report to the mac80211 layer the ACK policy which may
cause rx out-of-order issue, because the hardware rmac module already handle it

Signed-off-by: Bo Jiao <Bo.Jiao@xxxxxxxxxxxx>
---
  drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
index b47aea6..5080280 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
@@ -675,6 +675,11 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
fc = cpu_to_le16(FIELD_GET(MT_RXD6_FRAME_CONTROL, v0));
  		qos_ctl = FIELD_GET(MT_RXD8_QOS_CTL, v2);
+		/*
+		 * there is no need to report the ACK policy to the
+		 * mac80211 layer, because hw has already processed it.
+		 */
+		qos_ctl &= ~IEEE80211_QOS_CTL_ACK_POLICY_MASK;
I don't understand this change at all. First of all, the qos_ctl field isn't really reported to the mac80211 layer, it's used in mt76 internally. The rx reorder code uses it to detect no-ack policy in order to avoid reordering for it. Since you're masking out the ack policy, the value will be IEEE80211_QOS_CTL_ACK_POLICY_NORMAL, which ends up forcibly enabling rx reordering, even when the policy indicates no-ack.
How does this help, and what part does the rmac module already handle?

- Felix



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux