summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/marvell
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2012-04-30 05:49:45 (GMT)
committerDavid S. Miller <davem@davemloft.net>2012-05-01 17:39:13 (GMT)
commit3f42941b5d1d13542b1a755a9e4f633aa72e4d3e (patch)
tree351d5db0f926e3659cb8586f849468723bc4c80a /drivers/net/ethernet/marvell
parentd961949660fa1c1b7eb0c3a3c157989c90f14e8e (diff)
downloadlinux-fsl-qoriq-3f42941b5d1d13542b1a755a9e4f633aa72e4d3e.tar.xz
sky2: propogate rx hash when packet is copied
When a small packet is received, the driver copies it to a new skb to allow reusing the full size Rx buffer. The copy was propogating the checksum offload but not the receive hash information. The bug is impact was mostly harmless and therefore not observed until reviewing this area of code. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell')
-rw-r--r--drivers/net/ethernet/marvell/sky2.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index c9b504e..0ced311 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -2494,8 +2494,11 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2,
skb_copy_from_linear_data(re->skb, skb->data, length);
skb->ip_summed = re->skb->ip_summed;
skb->csum = re->skb->csum;
+ skb->rxhash = re->skb->rxhash;
+
pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
length, PCI_DMA_FROMDEVICE);
+ re->skb->rxhash = 0;
re->skb->ip_summed = CHECKSUM_NONE;
skb_put(skb, length);
}