From 21ca55caf91ee2fb155f4bcd2bacabb40d6d1a75 Mon Sep 17 00:00:00 2001 From: Yu Tian Date: Wed, 26 May 2021 13:32:37 +0800 Subject: [PATCH] qcacmn: use correct rx pool id for refill buffer When handling RXDMA error marked frames that from MAC1, wrong rx descriptor pool is referenced, so allocated buffer length is incorrect and lead to skb crash. Make changes to always uses mac0 rx descriptor pool for MCL platform. Change-Id: Ica01c3967d6248a23ea745da63149dae9cd56677 CRs-Fixed: 2945573 --- dp/wifi3.0/dp_rx_err.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index 421a30a94346..ce71a045b530 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/dp/wifi3.0/dp_rx_err.c @@ -2623,11 +2623,13 @@ dp_rxdma_err_process(struct dp_intr *int_ctx, struct dp_soc *soc, dp_srng_access_end(int_ctx, soc, err_dst_srng); if (rx_bufs_used) { - if (wlan_cfg_per_pdev_lmac_ring(soc->wlan_cfg_ctx)) + if (wlan_cfg_per_pdev_lmac_ring(soc->wlan_cfg_ctx)) { dp_rxdma_srng = &soc->rx_refill_buf_ring[mac_id]; - else + rx_desc_pool = &soc->rx_desc_buf[mac_id]; + } else { dp_rxdma_srng = &soc->rx_refill_buf_ring[pdev->lmac_id]; - rx_desc_pool = &soc->rx_desc_buf[mac_id]; + rx_desc_pool = &soc->rx_desc_buf[pdev->lmac_id]; + } dp_rx_buffers_replenish(soc, mac_id, dp_rxdma_srng, rx_desc_pool, rx_bufs_used, &head, &tail);