qcacmn: Alloc nbuf only after rx descriptor is allocated

Alloc nbuf only after rx descriptor is allocated

Change-Id: Idc7fbb3e119761b877cfa4d625d1af84bf785ad2
CRs-Fixed: 3309036
此提交包含在:
Tallapragada Kalyan
2022-10-10 20:13:40 +05:30
提交者 Madan Koyyalamudi
父節點 8e7416b1e6
當前提交 efff4ec854

查看文件

@@ -419,6 +419,11 @@ __dp_rx_buffers_no_map_replenish(struct dp_soc *soc, uint32_t mac_id,
for (count = 0; count < num_req_buffers; count++) {
next = (*desc_list)->next;
qdf_prefetch(next);
rxdma_ring_entry = (struct dp_buffer_addr_info *)
hal_srng_src_get_next(soc->hal_soc, rxdma_srng);
if (!rxdma_ring_entry)
break;
nbuf = dp_rx_nbuf_alloc(soc, rx_desc_pool);
if (qdf_unlikely(!nbuf)) {
DP_STATS_INC(dp_pdev, replenish.nbuf_alloc_fail, 1);
@@ -427,12 +432,6 @@ __dp_rx_buffers_no_map_replenish(struct dp_soc *soc, uint32_t mac_id,
paddr = dp_rx_nbuf_sync_no_dsb(soc, nbuf,
rx_desc_pool->buf_size);
rxdma_ring_entry = (struct dp_buffer_addr_info *)
hal_srng_src_get_next(soc->hal_soc, rxdma_srng);
if (!rxdma_ring_entry)
break;
qdf_assert_always(rxdma_ring_entry);
(*desc_list)->rx_desc.nbuf = nbuf;
(*desc_list)->rx_desc.rx_buf_start = nbuf->data;