net: stmmac: Fix page pool size
[platform/kernel/linux-starfive.git] / drivers / net / ethernet / stmicro / stmmac / stmmac_main.c
index a6cb2aa..d323273 100644 (file)
@@ -1557,13 +1557,15 @@ static int alloc_dma_rx_desc_resources(struct stmmac_priv *priv)
        for (queue = 0; queue < rx_count; queue++) {
                struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue];
                struct page_pool_params pp_params = { 0 };
+               unsigned int num_pages;
 
                rx_q->queue_index = queue;
                rx_q->priv_data = priv;
 
                pp_params.flags = PP_FLAG_DMA_MAP;
                pp_params.pool_size = DMA_RX_SIZE;
-               pp_params.order = DIV_ROUND_UP(priv->dma_buf_sz, PAGE_SIZE);
+               num_pages = DIV_ROUND_UP(priv->dma_buf_sz, PAGE_SIZE);
+               pp_params.order = ilog2(num_pages);
                pp_params.nid = dev_to_node(priv->device);
                pp_params.dev = priv->device;
                pp_params.dma_dir = DMA_FROM_DEVICE;