]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0014-sky2-propogate-rx-hash-when-packet-is-copied.patch
linux-ti33x-psp 3.2: update to 3.2.18
[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.2 / 3.2.18 / 0014-sky2-propogate-rx-hash-when-packet-is-copied.patch
1 From 040442d719f91dcb002eaa1efaffbebd2fd44328 Mon Sep 17 00:00:00 2001
2 From: stephen hemminger <shemminger@vyatta.com>
3 Date: Mon, 30 Apr 2012 05:49:45 +0000
4 Subject: [PATCH 14/56] sky2: propogate rx hash when packet is copied
6 [ Upstream commit 3f42941b5d1d13542b1a755a9e4f633aa72e4d3e ]
8 When a small packet is received, the driver copies it to a new skb to allow
9 reusing the full size Rx buffer. The copy was propogating the checksum offload
10 but not the receive hash information. The bug is impact was mostly harmless
11 and therefore not observed until reviewing this area of code.
13 Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
14 Signed-off-by: David S. Miller <davem@davemloft.net>
15 Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
16 ---
17  drivers/net/ethernet/marvell/sky2.c |    3 +++
18  1 files changed, 3 insertions(+), 0 deletions(-)
20 diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
21 index 7eb8a00..e1f4b65 100644
22 --- a/drivers/net/ethernet/marvell/sky2.c
23 +++ b/drivers/net/ethernet/marvell/sky2.c
24 @@ -2475,8 +2475,11 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2,
25                 skb_copy_from_linear_data(re->skb, skb->data, length);
26                 skb->ip_summed = re->skb->ip_summed;
27                 skb->csum = re->skb->csum;
28 +               skb->rxhash = re->skb->rxhash;
29 +
30                 pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
31                                                length, PCI_DMA_FROMDEVICE);
32 +               re->skb->rxhash = 0;
33                 re->skb->ip_summed = CHECKSUM_NONE;
34                 skb_put(skb, length);
35         }
36 -- 
37 1.7.7.6