diff mbox

[net-next] gre: Set inner mac header in gro complete

Message ID 1416936611-22702-1-git-send-email-therbert@google.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Tom Herbert Nov. 25, 2014, 5:30 p.m. UTC
Set the inner mac header to point to the GRE payload when
doing GRO. This is needed if we proceed to send the packet
through GRE GSO which now uses the inner mac header instead
of inner network header to determine the length of encapsulation
headers.

Reported-by: Wolfgang Walter <linux@stwm.de>
Signed-off-by: Tom Herbert <therbert@google.com>
---
 net/ipv4/gre_offload.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Eric Dumazet Nov. 25, 2014, 5:57 p.m. UTC | #1
On Tue, 2014-11-25 at 09:30 -0800, Tom Herbert wrote:
> Set the inner mac header to point to the GRE payload when
> doing GRO. This is needed if we proceed to send the packet
> through GRE GSO which now uses the inner mac header instead
> of inner network header to determine the length of encapsulation
> headers.
> 
> Reported-by: Wolfgang Walter <linux@stwm.de>
> Signed-off-by: Tom Herbert <therbert@google.com>
> ---

Please Tom, add in your bug fixes something to ease backports.

Fixes: 14051f0452a2 ("gre: Use inner mac length when computing tunnel length")



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Nov. 25, 2014, 7:35 p.m. UTC | #2
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Tue, 25 Nov 2014 09:57:21 -0800

> On Tue, 2014-11-25 at 09:30 -0800, Tom Herbert wrote:
>> Set the inner mac header to point to the GRE payload when
>> doing GRO. This is needed if we proceed to send the packet
>> through GRE GSO which now uses the inner mac header instead
>> of inner network header to determine the length of encapsulation
>> headers.
>> 
>> Reported-by: Wolfgang Walter <linux@stwm.de>
>> Signed-off-by: Tom Herbert <therbert@google.com>
>> ---
> 
> Please Tom, add in your bug fixes something to ease backports.
> 
> Fixes: 14051f0452a2 ("gre: Use inner mac length when computing tunnel length")

Also this is extremely far reaching consequences.

The bug is in Linus's tree, so net-next is not a suitable target,
'net' is.

Also, the commit in question has been backported into -stable, so
I would need to queue it up there as well.

Please respin this against 'net', and add the Fixes: tag, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/ipv4/gre_offload.c b/net/ipv4/gre_offload.c
index bb5947b..51973dd 100644
--- a/net/ipv4/gre_offload.c
+++ b/net/ipv4/gre_offload.c
@@ -247,6 +247,9 @@  static int gre_gro_complete(struct sk_buff *skb, int nhoff)
 		err = ptype->callbacks.gro_complete(skb, nhoff + grehlen);
 
 	rcu_read_unlock();
+
+	skb_set_inner_mac_header(skb, nhoff + grehlen);
+
 	return err;
 }