qcacmn: rearrange the code in dp_service_srngs

update the local ring mask after setting the service running flag
to avoid the concurrent access issues.

Change-Id: I209d22858f8ac7509b5337fdb1ebfe38699790e1
CRs-Fixed: 3461866
Tento commit je obsažen v:
Sai Rupesh Chevuru
2023-04-25 10:15:47 +05:30
odevzdal Madan Koyyalamudi
rodič ad2d3b59e7
revize 3a522a80e1

Zobrazit soubor

@@ -1280,15 +1280,21 @@ uint32_t dp_service_srngs(void *dp_ctx, uint32_t dp_budget, int cpu)
int index;
uint32_t work_done = 0;
int budget = dp_budget;
uint8_t tx_mask = int_ctx->tx_ring_mask;
uint8_t rx_mask = int_ctx->rx_ring_mask;
uint8_t rx_err_mask = int_ctx->rx_err_ring_mask;
uint8_t rx_wbm_rel_mask = int_ctx->rx_wbm_rel_ring_mask;
uint8_t reo_status_mask = int_ctx->reo_status_ring_mask;
uint32_t remaining_quota = dp_budget;
uint8_t tx_mask = 0;
uint8_t rx_mask = 0;
uint8_t rx_err_mask = 0;
uint8_t rx_wbm_rel_mask = 0;
uint8_t reo_status_mask = 0;
qdf_atomic_set_bit(cpu, &soc->service_rings_running);
tx_mask = int_ctx->tx_ring_mask;
rx_mask = int_ctx->rx_ring_mask;
rx_err_mask = int_ctx->rx_err_ring_mask;
rx_wbm_rel_mask = int_ctx->rx_wbm_rel_ring_mask;
reo_status_mask = int_ctx->reo_status_ring_mask;
dp_verbose_debug("tx %x rx %x rx_err %x rx_wbm_rel %x reo_status %x rx_mon_ring %x host2rxdma %x rxdma2host %x\n",
tx_mask, rx_mask, rx_err_mask, rx_wbm_rel_mask,
reo_status_mask,