tulip: Properly check dma mapping result
Tulip throws an error when dma debugging is enabled, as it doesn't properly check dma mapping results with dma_mapping_error() durring tx ring refills. Easy fix, just add it in, and drop the frame if the mapping is bad Signed-off-by: Neil Horman <nhorman@tuxdriver.com> CC: Grant Grundler <grundler@parisc-linux.org> CC: "David S. Miller" <davem@davemloft.net> Reviewed-by: Grant Grundler <grundler@parisc-linux.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
dd01989735
Коммит
c9bfbb31af
|
@ -76,6 +76,12 @@ int tulip_refill_rx(struct net_device *dev)
|
|||
|
||||
mapping = pci_map_single(tp->pdev, skb->data, PKT_BUF_SZ,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
if (dma_mapping_error(&tp->pdev->dev, mapping)) {
|
||||
dev_kfree_skb(skb);
|
||||
tp->rx_buffers[entry].skb = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
tp->rx_buffers[entry].mapping = mapping;
|
||||
|
||||
tp->rx_ring[entry].buffer1 = cpu_to_le32(mapping);
|
||||
|
|
Загрузка…
Ссылка в новой задаче