summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLingbo Kong <quic_lingbok@quicinc.com>2023-12-06 22:17:59 +0800
committerKalle Valo <quic_kvalo@quicinc.com>2023-12-12 19:34:05 +0200
commit7133b072dfbfac8763ffb017642c9c894894c50d (patch)
tree69a09f559be1e0d92677de66c47df9428f43cf1c /drivers
parentadd731385eed7b2c8298e3f97250e6057d7ca9cf (diff)
downloadlinux-stable-7133b072dfbfac8763ffb017642c9c894894c50d.tar.gz
linux-stable-7133b072dfbfac8763ffb017642c9c894894c50d.tar.bz2
linux-stable-7133b072dfbfac8763ffb017642c9c894894c50d.zip
wifi: ath12k: fix the issue that the multicast/broadcast indicator is not read correctly for WCN7850
We observe some packets are discarded in ieee80211_rx_handlers_result function for WCN7850. This is because the way to get multicast/broadcast indicator with RX_MSDU_END_INFO5_DA_IS_MCBC & info5 is incorrect. It should use RX_MSDU_END_INFO13_MCAST_BCAST & info13 to get multicast/broadcast indicator. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20231206141759.5430-1-quic_lingbok@quicinc.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath12k/hal.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/ath/ath12k/hal.c
index ca6f1d0db31e..a489369d8068 100644
--- a/drivers/net/wireless/ath/ath12k/hal.c
+++ b/drivers/net/wireless/ath/ath12k/hal.c
@@ -889,8 +889,8 @@ static u8 *ath12k_hw_wcn7850_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc)
static bool ath12k_hw_wcn7850_rx_desc_is_da_mcbc(struct hal_rx_desc *desc)
{
- return __le16_to_cpu(desc->u.wcn7850.msdu_end.info5) &
- RX_MSDU_END_INFO5_DA_IS_MCBC;
+ return __le32_to_cpu(desc->u.wcn7850.msdu_end.info13) &
+ RX_MSDU_END_INFO13_MCAST_BCAST;
}
static void ath12k_hw_wcn7850_rx_desc_get_dot11_hdr(struct hal_rx_desc *desc,