diff options
author | Eric Garver <e@erig.me> | 2017-06-02 14:54:10 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-04 20:03:09 -0400 |
commit | 9a1c44d989bff4c992b8b9a112d9fda275ea5515 (patch) | |
tree | a9478284fd99798b759c0ff779671128315e2948 /drivers/net/geneve.c | |
parent | 38b257938ac6655d0d6333743303231b9c465ec1 (diff) | |
download | linux-9a1c44d989bff4c992b8b9a112d9fda275ea5515.tar.bz2 |
geneve: fix needed_headroom and max_mtu for collect_metadata
Since commit 9b4437a5b870 ("geneve: Unify LWT and netdev handling.")
when using COLLECT_METADATA geneve devices are created with too small of
a needed_headroom and too large of a max_mtu. This is because
ip_tunnel_info_af() is not valid with the device level info when using
COLLECT_METADATA and we mistakenly fall into the IPv4 case.
For COLLECT_METADATA, always use the worst case of ipv6 since both
sockets are created.
Fixes: 9b4437a5b870 ("geneve: Unify LWT and netdev handling.")
Signed-off-by: Eric Garver <e@erig.me>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/geneve.c')
-rw-r--r-- | drivers/net/geneve.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 959fd12d2e67..6ebb0f559a42 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c @@ -1133,7 +1133,7 @@ static int geneve_configure(struct net *net, struct net_device *dev, /* make enough headroom for basic scenario */ encap_len = GENEVE_BASE_HLEN + ETH_HLEN; - if (ip_tunnel_info_af(info) == AF_INET) { + if (!metadata && ip_tunnel_info_af(info) == AF_INET) { encap_len += sizeof(struct iphdr); dev->max_mtu -= sizeof(struct iphdr); } else { |