[report] wifi: mt76: mt7996: fix FCS error flag check in RX descriptor
Ben Greear
greearb at candelatech.com
Mon Oct 13 11:11:38 PDT 2025
Hello Peter,
To help understand the severity of this problem, can you let us know when
the incorrect bit is set? In other words, would looking at the wrong bit
erroneously cause good frames to be dropped, or was the bit always zero and
it just allowed bad frames to be accepted?
Thanks,
Ben
On 10/12/25 20:19, Peter Chiu wrote:
> On Sun, 2025-10-12 at 22:02 +0530, ALOK TIWARI wrote:
>
> Hi Alok,
>
> Thanks for your mail.
> Your understanding is correct.
> There is a typo in mt7996.
>
> Thanks,
> Peter Chiu
>
>>
>> External email : Please do not click links or open attachments until
>> you have verified the sender or the content.
>>
>>
>> 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
>
> ************* MEDIATEK Confidentiality Notice
> ********************
> The information contained in this e-mail message (including any
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be
> conveyed only to the designated recipient(s). Any use, dissemination,
> distribution, printing, retaining or copying of this e-mail (including its
> attachments) by unintended recipient(s) is strictly prohibited and may
> be unlawful. If you are not an intended recipient of this e-mail, or believe
>
> that you have received this e-mail in error, please notify the sender
> immediately (by replying to this e-mail), delete any and all copies of
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!
>
--
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc http://www.candelatech.com
More information about the Linux-mediatek
mailing list