Skip to content

Commit afcefc5

Browse files
Nithyanantham Paramasivamjeff-t-johnson
authored andcommitted
wifi: ath12k: Fix packets received in WBM error ring with REO LUT enabled
Currently, packets are being received into the WBM error ring when REO queue lookup is enabled, resulting in degraded RX performance. The issue arises because the REO queue LUT TID memory reference is set to zero-it's being assigned before the memory is allocated. Fix this by assigning the REO queue TID memory reference in the LUT immediately after memory allocation to ensure correct packet processing. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Reported-by: Tanguy Serrat <[email protected]> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220282 Fixes: 3b9cbce ("wifi: ath12k: alloc REO queue per station") Signed-off-by: Nithyanantham Paramasivam <[email protected]> Reviewed-by: Baochen Qiang <[email protected]> Reviewed-by: Vasanthakumar Thiagarajan <[email protected]> Link: https://patch.msgid.link/20250710011754.559817-1-nithyanantham.paramasivam@oss.qualcomm.com Signed-off-by: Jeff Johnson <[email protected]>
1 parent c07981a commit afcefc5

File tree

1 file changed

+2
-1
lines changed
  • drivers/net/wireless/ath/ath12k

1 file changed

+2
-1
lines changed

drivers/net/wireless/ath/ath12k/dp_rx.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1060,7 +1060,6 @@ int ath12k_dp_rx_peer_tid_setup(struct ath12k *ar, const u8 *peer_mac, int vdev_
10601060
}
10611061

10621062
rx_tid = &peer->rx_tid[tid];
1063-
paddr_aligned = rx_tid->qbuf.paddr_aligned;
10641063
/* Update the tid queue if it is already setup */
10651064
if (rx_tid->active) {
10661065
ret = ath12k_peer_rx_tid_reo_update(ar, peer, rx_tid,
@@ -1072,6 +1071,7 @@ int ath12k_dp_rx_peer_tid_setup(struct ath12k *ar, const u8 *peer_mac, int vdev_
10721071
}
10731072

10741073
if (!ab->hw_params->reoq_lut_support) {
1074+
paddr_aligned = rx_tid->qbuf.paddr_aligned;
10751075
ret = ath12k_wmi_peer_rx_reorder_queue_setup(ar, vdev_id,
10761076
peer_mac,
10771077
paddr_aligned, tid,
@@ -1098,6 +1098,7 @@ int ath12k_dp_rx_peer_tid_setup(struct ath12k *ar, const u8 *peer_mac, int vdev_
10981098
return ret;
10991099
}
11001100

1101+
paddr_aligned = rx_tid->qbuf.paddr_aligned;
11011102
if (ab->hw_params->reoq_lut_support) {
11021103
/* Update the REO queue LUT at the corresponding peer id
11031104
* and tid with qaddr.

0 commit comments

Comments
 (0)