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
This commit is contained in:
@@ -2701,7 +2701,6 @@ try_again:
|
|||||||
DMA_FROM_DEVICE);
|
DMA_FROM_DEVICE);
|
||||||
|
|
||||||
num_buffs_reaped[mac_id]++;
|
num_buffs_reaped[mac_id]++;
|
||||||
total_msdu_reaped++;
|
|
||||||
|
|
||||||
push_reason = FIELD_GET(HAL_REO_DEST_RING_INFO0_PUSH_REASON,
|
push_reason = FIELD_GET(HAL_REO_DEST_RING_INFO0_PUSH_REASON,
|
||||||
desc.info0);
|
desc.info0);
|
||||||
@@ -2728,10 +2727,15 @@ try_again:
|
|||||||
rxcb->mac_id = mac_id;
|
rxcb->mac_id = mac_id;
|
||||||
__skb_queue_tail(&msdu_list, msdu);
|
__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;
|
done = true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (total_msdu_reaped >= budget)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hw might have updated the head pointer after we cached it.
|
/* Hw might have updated the head pointer after we cached it.
|
||||||
|
|||||||
Reference in New Issue
Block a user