Resolves: bz 956732

This commit is contained in:
Neil Horman 2013-06-18 14:32:29 -04:00
parent 00760aaca8
commit c48b60cc20
2 changed files with 41 additions and 0 deletions

View File

@ -801,6 +801,9 @@ Patch25046: KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch
Patch25047: drm-radeon-Disable-writeback-by-default-on-ppc.patch
#rhbz 956732
Patch25048: tulip-dma-debug-error.patch
# END OF PATCH DEFINITIONS
%endif
@ -1551,6 +1554,9 @@ ApplyPatch KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch
ApplyPatch drm-radeon-Disable-writeback-by-default-on-ppc.patch
#rhbz 956732
ApplyPatch tulip-dma-debug-error.patch
# END OF PATCH APPLICATIONS
%endif
@ -2367,6 +2373,9 @@ fi
# and build.
%changelog
* Tue Jun 18 2013 Neil Horman <nhorman@redhat.com>
- Fix dma debug error in tulip driver (rhbz 956732)
* Tue Jun 18 2013 Dave Jones <davej@redhat.com>
- Disable MTRR sanitizer by default.

View File

@ -0,0 +1,32 @@
commit 2087ac1fc6fd9bbb1f7e16889e984e0af0510b4b
Author: Neil Horman <nhorman@tuxdriver.com>
Date: Thu Jun 13 15:25:45 2013 -0400
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>
diff --git a/drivers/net/ethernet/dec/tulip/interrupt.c b/drivers/net/ethernet/dec/tulip/interrupt.c
index 28a5e42..92306b3 100644
--- a/drivers/net/ethernet/dec/tulip/interrupt.c
+++ b/drivers/net/ethernet/dec/tulip/interrupt.c
@@ -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);