mlx5: handle DMA mapping error case for XDP redirect
Commit58b99ee3e3
("net/mlx5e: Add support for XDP_REDIRECT in device-out side") forgot to return/free the xdp_frame in case the DMA mapping failed, correct this. Also DMA unmap the frame in case mlx5e_xmit_xdp_frame() fails. Fixes:58b99ee3e3
("net/mlx5e: Add support for XDP_REDIRECT in device-out side") Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Reviewed-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
6ae7467112
Коммит
39c64d8c87
|
@ -283,6 +283,7 @@ int mlx5e_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
|
|||
xdpi.dma_addr = dma_map_single(sq->pdev, xdpf->data, xdpf->len,
|
||||
DMA_TO_DEVICE);
|
||||
if (unlikely(dma_mapping_error(sq->pdev, xdpi.dma_addr))) {
|
||||
xdp_return_frame_rx_napi(xdpf);
|
||||
drops++;
|
||||
continue;
|
||||
}
|
||||
|
@ -290,6 +291,8 @@ int mlx5e_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
|
|||
xdpi.xdpf = xdpf;
|
||||
|
||||
if (unlikely(!mlx5e_xmit_xdp_frame(sq, &xdpi))) {
|
||||
dma_unmap_single(sq->pdev, xdpi.dma_addr,
|
||||
xdpf->len, DMA_TO_DEVICE);
|
||||
xdp_return_frame_rx_napi(xdpf);
|
||||
drops++;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче