summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOussama Ghorbel <ou.ghorbel@gmail.com>2013-10-10 18:50:27 +0100
committerDavid S. Miller <davem@davemloft.net>2013-10-11 17:50:59 -0400
commitbf58175954f2d390300df00f96070312d1b15096 (patch)
treedfcd9cdbd6fd0750135692bdbbddb5d5e2fcebed
parentff704050f2fc0f3382b5a70bba56a51a3feca79d (diff)
downloadlinux-bf58175954f2d390300df00f96070312d1b15096.tar.gz
linux-bf58175954f2d390300df00f96070312d1b15096.tar.bz2
linux-bf58175954f2d390300df00f96070312d1b15096.zip
ipv6: Initialize ip6_tnl.hlen in gre tunnel even if no route is found
The ip6_tnl.hlen (gre and ipv6 headers length) is independent from the outgoing interface, so it would be better to initialize it even when no route is found, otherwise its value will be zero. While I'm not sure if this could happen in real life, but doing that will avoid to call the skb_push function with a zero in ip6gre_header function. Suggested-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: Oussama Ghorbel <ou.ghorbel@gmail.com> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv6/ip6_gre.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 1ef1fa2b22a6..bf4a9a084de5 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -976,6 +976,7 @@ static void ip6gre_tnl_link_config(struct ip6_tnl *t, int set_mtu)
if (t->parms.o_flags&GRE_SEQ)
addend += 4;
}
+ t->hlen = addend;
if (p->flags & IP6_TNL_F_CAP_XMIT) {
int strict = (ipv6_addr_type(&p->raddr) &
@@ -1002,8 +1003,6 @@ static void ip6gre_tnl_link_config(struct ip6_tnl *t, int set_mtu)
}
ip6_rt_put(rt);
}
-
- t->hlen = addend;
}
static int ip6gre_tnl_change(struct ip6_tnl *t,