diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 04a2e7eaae..25d2a3d2bf 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -2697,8 +2697,11 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id) } else { rem_entries = num_entries_per_buf; scatter_buf_num++; - if (scatter_buf_num >= num_scatter_bufs) + if (scatter_buf_num >= num_scatter_bufs) { + scatter_buf_num--; break; + } + scatter_buf_ptr = (uint8_t *) (soc->wbm_idle_scatter_buf_base_vaddr[ scatter_buf_num]); @@ -2713,7 +2716,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id) num_scatter_bufs, soc->wbm_idle_scatter_buf_size, (uint32_t)(scatter_buf_ptr - (uint8_t *)(soc->wbm_idle_scatter_buf_base_vaddr[ - scatter_buf_num-1])), total_link_descs); + scatter_buf_num])), total_link_descs); } }