datapath: Compute checksum in skb_gso_segment() if needed
authorThomas Graf <tgraf@suug.ch>
Tue, 17 Dec 2013 01:03:45 +0000 (17:03 -0800)
committerJesse Gross <jesse@nicira.com>
Tue, 17 Dec 2013 01:03:45 +0000 (17:03 -0800)
The copy & csum optimization is no longer present with zerocopy
enabled. Compute the checksum in skb_gso_segment() directly by
dropping the HW CSUM capability from the features passed in.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
datapath/datapath.c

index 608afda..b42fd8b 100644 (file)
@@ -313,7 +313,7 @@ static int queue_gso_packets(struct datapath *dp, struct sk_buff *skb,
        struct sk_buff *segs, *nskb;
        int err;
 
-       segs = __skb_gso_segment(skb, NETIF_F_SG | NETIF_F_HW_CSUM, false);
+       segs = __skb_gso_segment(skb, NETIF_F_SG, false);
        if (IS_ERR(segs))
                return PTR_ERR(segs);