qcacmn: Add force break quota for REO error ring process

In some conditions REO error ring may have RX flood, but
there is no force break scheme for that ring process. This
leads to starvation of RX refill buffer ring and then FW
crashes due to no refill buffer. Change is aimed to force
break of ring processing and refill buffers in small batch
count.

Change-Id: I3c543ebb16bd1709e782be759c9063a356a96562
CRs-Fixed: 3262685
This commit is contained in:
Yu Tian
2022-08-09 11:14:24 +08:00
committed by Madan Koyyalamudi
父節點 8b1a96a35a
當前提交 226e9258ba

查看文件

@@ -2304,6 +2304,8 @@ dp_rx_err_process(struct dp_intr *int_ctx, struct dp_soc *soc,
bool ret;
uint32_t error_code = 0;
bool sw_pn_check_needed;
int max_reap_limit = dp_rx_get_loop_pkt_limit(soc);
int i, rx_bufs_reaped_total;
/* Debug -- Remove later */
qdf_assert(soc && hal_ring_hdl);
@@ -2553,6 +2555,14 @@ process_reo_error_code:
next_entry:
dp_rx_link_cookie_invalidate(ring_desc);
hal_srng_dst_get_next(hal_soc, hal_ring_hdl);
rx_bufs_reaped_total = 0;
for (i = 0; i < MAX_PDEV_CNT; i++)
rx_bufs_reaped_total += rx_bufs_reaped[i];
if (dp_rx_reap_loop_pkt_limit_hit(soc, rx_bufs_reaped_total,
max_reap_limit))
break;
}
done: