ath12k: fix peer_id usage in normal RX path#524
Conversation
Add support for 5 GHz channel 177 with a center frequency of 5885 MHz and Operating Class 125 per IEEE Std 802.11-2024 Table E-4. Channels 169, 173, and 177 are in the 5.9 GHz band and must be disabled when 5.9 GHz service bit is not supported. The 5.9 GHz band is only permitted for WLAN operation under FCC regulations. CRs-Fixed: 4435878 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 Link: https://lore.kernel.org/all/20260415063857.2462256-1-yintang@qti.qualcomm.com Signed-off-by: Yingying Tang <yingying.tang@oss.qualcomm.com>
ath12k_dp_rx_deliver_msdu() currently uses hal_rx_desc_data::peer_id parsed from mpdu_start descriptor to do peer lookup. However In an A-MSDU aggregation scenario, hardware only populates mpdu_start descriptor for the first sub-msdu, but not the following ones. In that case peer_id could be invalid, leading to peer lookup failure: ath12k_wifi7_pci 0000:06:00.0: rx skb 00000000c391c041 len 1532 peer (null) 0 ucast sn 0 eht320 rate_idx 12 vht_nss 2 freq 6105 band 3 flag 0x40d1a fcs-err 0 mic-err 0 amsdu-more 0 As a result pubsta is NULL and parts of ieee80211_rx_status structure are left uninitialized, which may cause unexpected behavior. Fix it by switching the normal RX path to use ath12k_skb_rxcb::peer_id which is parsed from REO ring's rx_mpdu_desc and is always valid. hal_rx_desc_data::peer_id is still used in ath12k_wifi7_dp_rx_frag_h_mpdu(), which is safe since A-MSDU aggregation does not occur for fragmented frames. Similarly, ath12k_skb_rxcb::peer_id may be overwritten by hal_rx_desc_data::peer_id in ath12k_wifi7_dp_rx_h_mpdu(), which only handles non-aggregated multicast/broadcast traffic. CRs-Fixed4473306 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 Link: https://lore.kernel.org/all/20260427-ath12k-fix-peer-id-source-v1-1-b5f701fb8e88@oss.qualcomm.com Fixes: 11157e0 ("wifi: ath12k: Use ath12k_dp_peer in per packet Tx & Rx paths") Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Test Matrix
|
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4435878 on any of the following entities: Entities:
CR: 4435878 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
Test Matrix
|
Test Matrix
|
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4435878 on any of the following entities: Entities:
CR: 4435878 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
1 similar comment
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4435878 on any of the following entities: Entities:
CR: 4435878 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
Please add proper change task to CR. |
FROMLIST: wifi: ath12k: fix peer_id usage in normal RX path
CRs-Fixed: 4473306
Link: https://lore.kernel.org/all/20260427-ath12k-fix-peer-id-source-v1-1-b5f701fb8e88@oss.qualcomm.com
FROMLIST: wifi: ath12k: add channel 177 to the 5 GHz channel list
CRs-Fixed: 4435878
Link: https://lore.kernel.org/all/20260415063857.2462256-1-yintang@qti.qualcomm.com