datapath: Add support for kernel 4.4
[cascardo/ovs.git] / datapath / actions.c
index 3f2ba4c..3f1fb91 100644 (file)
@@ -729,8 +729,11 @@ static void ovs_fragment(struct net *net, struct vport *vport,
                orig_dst = (unsigned long) skb_dst(skb);
                skb_dst_set_noref(skb, &ovs_rt.dst);
                IP6CB(skb)->frag_max_size = mru;
-
+#ifdef HAVE_IP_LOCAL_OUT_TAKES_NET
+               v6ops->fragment(net, skb->sk, skb, ovs_vport_output);
+#else
                v6ops->fragment(skb->sk, skb, ovs_vport_output);
+#endif
                refdst_drop(orig_dst);
        } else {
                WARN_ONCE(1, "Failed fragment ->%s: eth=%04x, MRU=%d, MTU=%d.",
@@ -814,8 +817,6 @@ static int output_userspace(struct datapath *dp, struct sk_buff *skb,
 
                        vport = ovs_vport_rcu(dp, nla_get_u32(a));
                        if (vport) {
-                               int err;
-
                                err = dev_fill_metadata_dst(vport->dev, skb);
                                if (!err)
                                        upcall.egress_tun_info = skb_tunnel_info(skb);