mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
56 lines
1.8 KiB
Diff
56 lines
1.8 KiB
Diff
From a1775e732eb90486519de3813b83a11b7fcee2d0 Mon Sep 17 00:00:00 2001
|
|
From: P Praneesh <ppranees@codeaurora.org>
|
|
Date: Fri, 12 Nov 2021 11:02:12 +0200
|
|
Subject: [PATCH 077/120] ath11k: avoid additional access to
|
|
ath11k_hal_srng_dst_num_free
|
|
|
|
In ath11k_dp_process_rx(), after processing rx_desc from
|
|
ath11k_hal_srng_dst_get_next_entry(), ath11k_hal_srng_dst_num_free()
|
|
is accessed everytime because of done flag is not set.
|
|
|
|
To avoid this additional access to ath11k_hal_srng_dst_num_free(),
|
|
increment total_msdu_reaped only when continuation is not set and
|
|
update done flag correspondingly.
|
|
|
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1.r2-00012-QCAHKSWPL_SILICONZ-1
|
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01695-QCAHKSWPL_SILICONZ-1
|
|
|
|
Co-developed-by: Sriram R <srirrama@codeaurora.org>
|
|
Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
|
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
|
|
Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Link: https://lore.kernel.org/r/1630560820-21905-5-git-send-email-ppranees@codeaurora.org
|
|
---
|
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 10 +++++++---
|
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
|
@@ -2701,7 +2701,6 @@ try_again:
|
|
DMA_FROM_DEVICE);
|
|
|
|
num_buffs_reaped[mac_id]++;
|
|
- total_msdu_reaped++;
|
|
|
|
push_reason = FIELD_GET(HAL_REO_DEST_RING_INFO0_PUSH_REASON,
|
|
desc.info0);
|
|
@@ -2728,10 +2727,15 @@ try_again:
|
|
rxcb->mac_id = mac_id;
|
|
__skb_queue_tail(&msdu_list, msdu);
|
|
|
|
- if (total_msdu_reaped >= quota && !rxcb->is_continuation) {
|
|
+ if (rxcb->is_continuation) {
|
|
+ done = false;
|
|
+ } else {
|
|
+ total_msdu_reaped++;
|
|
done = true;
|
|
- break;
|
|
}
|
|
+
|
|
+ if (total_msdu_reaped >= budget)
|
|
+ break;
|
|
}
|
|
|
|
/* Hw might have updated the head pointer after we cached it.
|