]> git.proxmox.com Git - ovs.git/commitdiff
compat: Fix gre header bug
authorGreg Rose <gvrose8192@gmail.com>
Fri, 29 Jun 2018 03:31:25 +0000 (20:31 -0700)
committerJustin Pettit <jpettit@ovn.org>
Fri, 29 Jun 2018 16:07:46 +0000 (09:07 -0700)
Commit 436d36db introduced a bug into the gre header build for gre and
ip gre type tunnels.  __vlan_hwaccel_push_inside does not check whether
the vlan tag is even present.  So check first and avoid padding space
for a vlan tag that isn't present.

Fixes: 436d36db ("compat: Fixups for newer kernels")
Signed-off-by: Greg Rose <gvrose8192@gmail.com>
Acked-by: William Tu <u9012063@gmail.com>
Signed-off-by: Justin Pettit <jpettit@ovn.org>
datapath/linux/compat/ip_gre.c

index ac9fb8bfcc88a3cd819d1d4ffdce1e5e2b1af491..df0217e3b7dde1371ccb6cbf9733aca3905160d7 100644 (file)
@@ -552,10 +552,12 @@ netdev_tx_t rpl_gre_fb_xmit(struct sk_buff *skb)
                        goto err_free_rt;
        }
 
-       skb = __vlan_hwaccel_push_inside(skb);
-       if (unlikely(!skb)) {
-               err = -ENOMEM;
-               goto err_free_rt;
+       if (skb_vlan_tag_present(skb)) {
+               skb = __vlan_hwaccel_push_inside(skb);
+               if (unlikely(!skb)) {
+                       err = -ENOMEM;
+                       goto err_free_rt;
+               }
        }
 
        /* Push Tunnel header. */