On Wed, 3 Jul 2019 12:37:50 +0200 Jose Abreu <jose.ab...@synopsys.com> wrote:
> @@ -1498,8 +1479,9 @@ static void free_dma_rx_desc_resources(struct > stmmac_priv *priv) > sizeof(struct dma_extended_desc), > rx_q->dma_erx, rx_q->dma_rx_phy); > > - kfree(rx_q->rx_skbuff_dma); > - kfree(rx_q->rx_skbuff); > + kfree(rx_q->buf_pool); > + if (rx_q->page_pool) > + page_pool_request_shutdown(rx_q->page_pool); > } > } > The page_pool_request_shutdown() API return indication if there are any in-flight frames/pages, to know when it is safe to call page_pool_free(), which you are also missing a call to. This page_pool_request_shutdown() is only intended to be called from xdp_rxq_info_unreg() code, that handles and schedule a work queue if it need to wait for in-flight frames/pages. -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer