diff options
author | Michael Chan <michael.chan@broadcom.com> | 2019-07-09 03:50:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-09 12:17:54 -0700 |
commit | 12479f627f7c2017e6fcd50b56c2537592674c50 (patch) | |
tree | ed3a0007a7c06837b2c72670a7361be7db4a2473 | |
parent | 216dcb059b767ef526499f3ed287e98b37af03c3 (diff) | |
download | linux-12479f627f7c2017e6fcd50b56c2537592674c50.tar.gz linux-12479f627f7c2017e6fcd50b56c2537592674c50.tar.bz2 linux-12479f627f7c2017e6fcd50b56c2537592674c50.zip |
bnxt_en: Add page_pool_destroy() during RX ring cleanup.
Add page_pool_destroy() in bnxt_free_rx_rings() during normal RX ring
cleanup, as Ilias has informed us that the following commit has been
merged:
1da4bbeffe41 ("net: core: page_pool: add user refcnt and reintroduce page_pool_destroy")
The special error handling code to call page_pool_free() can now be
removed. bnxt_free_rx_rings() will always be called during normal
shutdown or any error paths.
Fixes: 322b87ca55f2 ("bnxt_en: add page_pool support")
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Andy Gospodarek <gospo@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Acked-by: Andy Gospodarek <gospo@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index e9d3bd80f2dd..2b5b0ab8961a 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -2500,6 +2500,7 @@ static void bnxt_free_rx_rings(struct bnxt *bp) if (xdp_rxq_info_is_reg(&rxr->xdp_rxq)) xdp_rxq_info_unreg(&rxr->xdp_rxq); + page_pool_destroy(rxr->page_pool); rxr->page_pool = NULL; kfree(rxr->rx_tpa); @@ -2560,19 +2561,14 @@ static int bnxt_alloc_rx_rings(struct bnxt *bp) return rc; rc = xdp_rxq_info_reg(&rxr->xdp_rxq, bp->dev, i); - if (rc < 0) { - page_pool_free(rxr->page_pool); - rxr->page_pool = NULL; + if (rc < 0) return rc; - } rc = xdp_rxq_info_reg_mem_model(&rxr->xdp_rxq, MEM_TYPE_PAGE_POOL, rxr->page_pool); if (rc) { xdp_rxq_info_unreg(&rxr->xdp_rxq); - page_pool_free(rxr->page_pool); - rxr->page_pool = NULL; return rc; } |