[report] wifi: mt76: mt7996: fix FCS error flag check in RX descriptor

ALOK TIWARI alok.a.tiwari at oracle.com
Sun Oct 12 09:32:24 PDT 2025


Hi,

While looking through the FCS error handling in the mt76 drivers,
I noticed that mt7996 uses rxd1 to check the MT_RXD3_NORMAL_FCS_ERR bit,
whereas other Connac3-based drivers (such as mt7925) use rxd3.

According to the definitions, MT_RXD3_NORMAL_FCS_ERR is located in the 
fourth
RX descriptor word (rxd3), so I prepared a small patch to switch the 
check from
rxd1 to rxd3 for consistency and correctness.

Before sending it formally, I wanted to confirm whether this 
understanding is correct.
is mt7996 indeed supposed to use rxd3 for this flag, like mt7925?

Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 
7 (802.11be) devices")

Thanks,
Alok

---
  drivers/net/wireless/mediatek/mt76/mt7996/mac.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c 
b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c
index 9501def3e0e3..59744e5593b6 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c
@@ -527,7 +527,7 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum 
mt76_rxq_id q,
             !(csum_status & (BIT(0) | BIT(2) | BIT(3))))
                 skb->ip_summed = CHECKSUM_UNNECESSARY;

-       if (rxd1 & MT_RXD3_NORMAL_FCS_ERR)
+       if (rxd3 & MT_RXD3_NORMAL_FCS_ERR)
                 status->flag |= RX_FLAG_FAILED_FCS_CRC;

         if (rxd1 & MT_RXD1_NORMAL_TKIP_MIC_ERR)
--
2.50.1



More information about the Linux-mediatek mailing list