In xgene_enet_refill_pagepool(), the skb->data is dma-mapped with length len which is set to XGENE_ENET_STD_MTU which equals 1536. However, in xgene_enet_delete_bufpool(), the same buffer is unmapped with length XGENE_ENET_MAX_MTU which is 9600. This may erroneously unmap other DMA buffers or cause other issues. Change unmap length to XGENE_ENET_STD_MTU. Fixes: 6e434627bce2 ("drivers: net: xgene: fix: Add dma_unmap_single") Signed-off-by: Thomas Fourier --- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index 507db46daf2b..2ddcbf27014e 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -185,7 +185,7 @@ static void xgene_enet_delete_bufpool(struct xgene_enet_desc_ring *buf_pool) raw_desc = &buf_pool->raw_desc16[i]; dma_addr = GET_VAL(DATAADDR, le64_to_cpu(raw_desc->m1)); - dma_unmap_single(dev, dma_addr, XGENE_ENET_MAX_MTU, + dma_unmap_single(dev, dma_addr, XGENE_ENET_STD_MTU, DMA_FROM_DEVICE); } } -- 2.53.0