Merge commit '559eb2308b4d616590aba34bb8f4dd7f12ae4587'
[sliver-openvswitch.git] / datapath / vport-gre.c
index c252dcf..a29d2e8 100644 (file)
@@ -95,8 +95,6 @@ static void __gre_build_header(struct sk_buff *skb,
        __be32 *options = (__be32 *)(skb_network_header(skb) + tunnel_hlen
                        - GRE_HEADER_SECTION);
        struct gre_base_hdr *greh = (struct gre_base_hdr *) skb_transport_header(skb);
-       struct dst_entry *dst = skb_dst(skb);
-
        greh->protocol = htons(ETH_P_TEB);
        greh->flags = 0;
 
@@ -121,14 +119,6 @@ static void __gre_build_header(struct sk_buff *skb,
                                                skb->len - skb_transport_offset(skb),
                                                0));
        }
-       /*
-        * Allow our local IP stack to fragment the outer packet even if the
-        * DF bit is set as a last resort.  We also need to force selection of
-        * an IP ID here because Linux will otherwise leave it at 0 if the
-        * packet originally had DF set.
-        */
-       skb->local_df = 1;
-       __ip_select_ident(ip_hdr(skb), dst, 0);
 }
 
 static void gre_build_header(const struct vport *vport,
@@ -341,7 +331,7 @@ static struct vport *gre_create(const struct vport_parms *parms)
        struct vport *vport;
 
        ovs_net = net_generic(net, ovs_net_id);
-       if (rtnl_dereference(ovs_net->vport_net.gre_vport))
+       if (ovsl_dereference(ovs_net->vport_net.gre_vport))
                return ERR_PTR(-EEXIST);
 
        vport = ovs_tnl_create(parms, &ovs_gre_vport_ops, &gre_tnl_ops);
@@ -386,7 +376,7 @@ static struct vport *gre64_create(const struct vport_parms *parms)
        struct vport *vport;
 
        ovs_net = net_generic(net, ovs_net_id);
-       if (rtnl_dereference(ovs_net->vport_net.gre64_vport))
+       if (ovsl_dereference(ovs_net->vport_net.gre64_vport))
                return ERR_PTR(-EEXIST);
 
        vport = ovs_tnl_create(parms, &ovs_gre64_vport_ops, &gre64_tnl_ops);