Commit c4890963 authored by Thomas Fourier's avatar Thomas Fourier Committed by Jakub Kicinski
Browse files

atm: idt77252: Add missing `dma_map_error()`



The DMA map functions can fail and should be tested for errors.

Signed-off-by: default avatarThomas Fourier <fourier.thomas@gmail.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250624064148.12815-3-fourier.thomas@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 010c40c1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -852,6 +852,8 @@ queue_skb(struct idt77252_dev *card, struct vc_map *vc,

	IDT77252_PRV_PADDR(skb) = dma_map_single(&card->pcidev->dev, skb->data,
						 skb->len, DMA_TO_DEVICE);
	if (dma_mapping_error(&card->pcidev->dev, IDT77252_PRV_PADDR(skb)))
		return -ENOMEM;

	error = -EINVAL;

@@ -1857,6 +1859,8 @@ add_rx_skb(struct idt77252_dev *card, int queue,
		paddr = dma_map_single(&card->pcidev->dev, skb->data,
				       skb_end_pointer(skb) - skb->data,
				       DMA_FROM_DEVICE);
		if (dma_mapping_error(&card->pcidev->dev, paddr))
			goto outpoolrm;
		IDT77252_PRV_PADDR(skb) = paddr;

		if (push_rx_skb(card, skb, queue)) {
@@ -1871,6 +1875,7 @@ add_rx_skb(struct idt77252_dev *card, int queue,
	dma_unmap_single(&card->pcidev->dev, IDT77252_PRV_PADDR(skb),
			 skb_end_pointer(skb) - skb->data, DMA_FROM_DEVICE);

outpoolrm:
	handle = IDT77252_PRV_POOL(skb);
	card->sbpool[POOL_QUEUE(handle)].skb[POOL_INDEX(handle)] = NULL;