Skip to content

Commit 96a1e15

Browse files
Thomas-fourierkuba-moo
authored andcommitted
net: ag71xx: Add missing check after DMA map
The DMA map functions can fail and should be tested for errors. Signed-off-by: Thomas Fourier <[email protected]> Reviewed-by: Simon Horman <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent b664564 commit 96a1e15

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

drivers/net/ethernet/atheros/ag71xx.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1213,6 +1213,11 @@ static bool ag71xx_fill_rx_buf(struct ag71xx *ag, struct ag71xx_buf *buf,
12131213
buf->rx.rx_buf = data;
12141214
buf->rx.dma_addr = dma_map_single(&ag->pdev->dev, data, ag->rx_buf_size,
12151215
DMA_FROM_DEVICE);
1216+
if (dma_mapping_error(&ag->pdev->dev, buf->rx.dma_addr)) {
1217+
skb_free_frag(data);
1218+
buf->rx.rx_buf = NULL;
1219+
return false;
1220+
}
12161221
desc->data = (u32)buf->rx.dma_addr + offset;
12171222
return true;
12181223
}
@@ -1511,6 +1516,10 @@ static netdev_tx_t ag71xx_hard_start_xmit(struct sk_buff *skb,
15111516

15121517
dma_addr = dma_map_single(&ag->pdev->dev, skb->data, skb->len,
15131518
DMA_TO_DEVICE);
1519+
if (dma_mapping_error(&ag->pdev->dev, dma_addr)) {
1520+
netif_dbg(ag, tx_err, ndev, "DMA mapping error\n");
1521+
goto err_drop;
1522+
}
15141523

15151524
i = ring->curr & ring_mask;
15161525
desc = ag71xx_ring_desc(ring, i);

0 commit comments

Comments
 (0)