Commit f4a51879 authored by Antoine Tenart's avatar Antoine Tenart Committed by David S. Miller

net: mvneta: fix the remaining Rx descriptor unmapping issues

With CONFIG_DMA_API_DEBUG enabled we get DMA unmapping warning in
various places of the mvneta driver, for example when putting down an
interface while traffic is passing through.

The issue is when using s/w buffer management, the Rx buffers are mapped
using dma_map_page but unmapped with dma_unmap_single. This patch fixes
this by using the right unmapping function.

Fixes: 562e2f46 ("net: mvneta: Improve the buffer allocation method for SWBM")
Signed-off-by: default avatarAntoine Tenart <antoine.tenart@bootlin.com>
Reviewed-by: default avatarGregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ccfec9e5
...@@ -1890,8 +1890,8 @@ static void mvneta_rxq_drop_pkts(struct mvneta_port *pp, ...@@ -1890,8 +1890,8 @@ static void mvneta_rxq_drop_pkts(struct mvneta_port *pp,
if (!data || !(rx_desc->buf_phys_addr)) if (!data || !(rx_desc->buf_phys_addr))
continue; continue;
dma_unmap_single(pp->dev->dev.parent, rx_desc->buf_phys_addr, dma_unmap_page(pp->dev->dev.parent, rx_desc->buf_phys_addr,
MVNETA_RX_BUF_SIZE(pp->pkt_size), DMA_FROM_DEVICE); PAGE_SIZE, DMA_FROM_DEVICE);
__free_page(data); __free_page(data);
} }
} }
...@@ -2039,9 +2039,8 @@ static int mvneta_rx_swbm(struct napi_struct *napi, ...@@ -2039,9 +2039,8 @@ static int mvneta_rx_swbm(struct napi_struct *napi,
frag_offset, frag_size, frag_offset, frag_size,
PAGE_SIZE); PAGE_SIZE);
dma_unmap_single(dev->dev.parent, phys_addr, dma_unmap_page(dev->dev.parent, phys_addr,
PAGE_SIZE, PAGE_SIZE, DMA_FROM_DEVICE);
DMA_FROM_DEVICE);
rxq->left_size -= frag_size; rxq->left_size -= frag_size;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment