| From chrisw@osdl.org Wed Dec 21 09:28:06 2005 |
| Date: Wed, 14 Dec 2005 16:29:02 -0800 (PST) |
| Message-Id: <20051214.162902.42775251.davem@davemloft.net> |
| To: stable@kernel.org |
| From: "David S. Miller" <davem@davemloft.net> |
| Cc: shemminger@osdl.org |
| Subject: [VLAN]: Fix hardware rx csum errors |
| |
| From: Stephen Hemminger <shemminger@osdl.org> |
| |
| Receiving VLAN packets over a device (without VLAN assist) that is |
| doing hardware checksumming (CHECKSUM_HW), causes errors because the |
| VLAN code forgets to adjust the hardware checksum. |
| |
| Signed-off-by: Stephen Hemminger <shemminger@osdl.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Chris Wright <chrisw@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| --- |
| net/8021q/vlan_dev.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- linux-2.6.14.4.orig/net/8021q/vlan_dev.c |
| +++ linux-2.6.14.4/net/8021q/vlan_dev.c |
| @@ -165,6 +165,9 @@ int vlan_skb_recv(struct sk_buff *skb, s |
| |
| skb_pull(skb, VLAN_HLEN); /* take off the VLAN header (4 bytes currently) */ |
| |
| + /* Need to correct hardware checksum */ |
| + skb_postpull_rcsum(skb, vhdr, VLAN_HLEN); |
| + |
| /* Ok, lets check to make sure the device (dev) we |
| * came in on is what this VLAN is attached to. |
| */ |