aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/gre_offload.c
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2014-11-29 12:59:45 -0500
committerDavid S. Miller <davem@davemloft.net>2014-12-06 00:18:34 -0500
commit6fb2a756739aa507c1fd5b8126f0bfc2f070dc46 (patch)
tree5491b8aca2063a2602694754d825d8f48871a9fa /net/ipv4/gre_offload.c
parent7cc78f8fa02c2485104b86434acbc1538a3bd807 (diff)
gre: Set inner mac header in gro complete
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. Fixes: 14051f0452a2 ("gre: Use inner mac length when computing tunnel length") Reported-by: Wolfgang Walter <linux@stwm.de> Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/gre_offload.c')
-rw-r--r--net/ipv4/gre_offload.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/gre_offload.c b/net/ipv4/gre_offload.c
index bb5947b0ce2d..51973ddc05a6 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)
247 err = ptype->callbacks.gro_complete(skb, nhoff + grehlen); 247 err = ptype->callbacks.gro_complete(skb, nhoff + grehlen);
248 248
249 rcu_read_unlock(); 249 rcu_read_unlock();
250
251 skb_set_inner_mac_header(skb, nhoff + grehlen);
252
250 return err; 253 return err;
251} 254}
252 255