Since the switch to build_skb() the RX buffers are mapped with ENET_RX_BUF_DMA_SIZE and slot->len is no longer set for them, but bcm4908_enet_dma_uninit() still unmaps them with slot->len. Use the size they were mapped with. Found by reading the code. Fixes: 3a1cc23a75ab ("net: broadcom: bcm4908_enet: use build_skb()") Reviewed-by: Florian Fainelli Signed-off-by: Kordian Chmielewski --- drivers/net/ethernet/broadcom/bcm4908_enet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bcm4908_enet.c b/drivers/net/ethernet/broadcom/bcm4908_enet.c index 03de65d9b..4065769da 100644 --- a/drivers/net/ethernet/broadcom/bcm4908_enet.c +++ b/drivers/net/ethernet/broadcom/bcm4908_enet.c @@ -334,7 +334,8 @@ static void bcm4908_enet_dma_uninit(struct bcm4908_enet *enet) slot = &rx_ring->slots[i]; if (!slot->buf) continue; - dma_unmap_single(dev, slot->dma_addr, slot->len, DMA_FROM_DEVICE); + dma_unmap_single(dev, slot->dma_addr, ENET_RX_BUF_DMA_SIZE, + DMA_FROM_DEVICE); skb_free_frag(slot->buf); slot->buf = NULL; } -- 2.56.1