Message ID | 20241004142115.910876-1-kuba@kernel.org (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] Revert "net: stmmac: set PP_FLAG_DMA_SYNC_DEV only if XDP is enabled" | expand |
On 10/4/2024 7:21 AM, Jakub Kicinski wrote: > This reverts commit b514c47ebf41a6536551ed28a05758036e6eca7c. > > The commit describes that we don't have to sync the page when > recycling, and it tries to optimize that case. But we do need > to sync after allocation. Recycling side should be changed to > pass the right sync size instead. Makes sense. A proper fix would be to pass something in from the recycling code to disable sink. Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> > > Fixes: b514c47ebf41 ("net: stmmac: set PP_FLAG_DMA_SYNC_DEV only if XDP is enabled") > Reported-by: Jon Hunter <jonathanh@nvidia.com> > Link: https://lore.kernel.org/20241004070846.2502e9ea@kernel.org > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > --- > CC: alexandre.torgue@foss.st.com > CC: joabreu@synopsys.com > CC: mcoquelin.stm32@gmail.com > CC: hawk@kernel.org > CC: 0x1207@gmail.com > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index e2140482270a..d3895d7eecfc 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -2035,7 +2035,7 @@ static int __alloc_dma_rx_desc_resources(struct stmmac_priv *priv, > rx_q->queue_index = queue; > rx_q->priv_data = priv; > > - pp_params.flags = PP_FLAG_DMA_MAP | (xdp_prog ? PP_FLAG_DMA_SYNC_DEV : 0); > + pp_params.flags = PP_FLAG_DMA_MAP | PP_FLAG_DMA_SYNC_DEV; > pp_params.pool_size = dma_conf->dma_rx_size; > num_pages = DIV_ROUND_UP(dma_conf->dma_buf_sz, PAGE_SIZE); > pp_params.order = ilog2(num_pages);
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index e2140482270a..d3895d7eecfc 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2035,7 +2035,7 @@ static int __alloc_dma_rx_desc_resources(struct stmmac_priv *priv, rx_q->queue_index = queue; rx_q->priv_data = priv; - pp_params.flags = PP_FLAG_DMA_MAP | (xdp_prog ? PP_FLAG_DMA_SYNC_DEV : 0); + pp_params.flags = PP_FLAG_DMA_MAP | PP_FLAG_DMA_SYNC_DEV; pp_params.pool_size = dma_conf->dma_rx_size; num_pages = DIV_ROUND_UP(dma_conf->dma_buf_sz, PAGE_SIZE); pp_params.order = ilog2(num_pages);
This reverts commit b514c47ebf41a6536551ed28a05758036e6eca7c. The commit describes that we don't have to sync the page when recycling, and it tries to optimize that case. But we do need to sync after allocation. Recycling side should be changed to pass the right sync size instead. Fixes: b514c47ebf41 ("net: stmmac: set PP_FLAG_DMA_SYNC_DEV only if XDP is enabled") Reported-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/20241004070846.2502e9ea@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- CC: alexandre.torgue@foss.st.com CC: joabreu@synopsys.com CC: mcoquelin.stm32@gmail.com CC: hawk@kernel.org CC: 0x1207@gmail.com --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)