datapath: Handle packets with precomputed checksums.
[openvswitch] / datapath / actions.c
index 4f23c83d5841cc38ee2d844052b0490c2d81f3af..a24abcae13d734feab56ca478b14ff33e523b8a3 100644 (file)
@@ -37,7 +37,7 @@ make_writable(struct sk_buff *skb, unsigned min_headroom, gfp_t gfp)
                        nskb->ip_summed = skb->ip_summed;
                        nskb->csum = skb->csum;
 #endif
-#if defined(CONFIG_XEN) && LINUX_VERSION_CODE == KERNEL_VERSION(2,6,18)
+#if defined(CONFIG_XEN) && defined(HAVE_PROTO_DATA_VALID)
                        /* These fields are copied in skb_clone but not in
                         * skb_copy or related functions.  We need to manually
                         * copy them over here. */
@@ -302,6 +302,7 @@ int dp_xmit_skb(struct sk_buff *skb)
                return -E2BIG;
        }
 
+       forward_ip_summed(skb);
        dev_queue_xmit(skb);
 
        return len;