From patchwork Fri Dec 13 14:22:22 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Graf X-Patchwork-Id: 301049 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 394492C00A3 for ; Sat, 14 Dec 2013 01:22:53 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752871Ab3LMOWu (ORCPT ); Fri, 13 Dec 2013 09:22:50 -0500 Received: from merlin.infradead.org ([205.233.59.134]:43951 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752855Ab3LMOWs (ORCPT ); Fri, 13 Dec 2013 09:22:48 -0500 Received: from 77-56-192-57.dclient.hispeed.ch ([77.56.192.57] helo=lsx.localdomain) by merlin.infradead.org with esmtpsa (Exim 4.80.1 #2 (Red Hat Linux)) id 1VrTdU-0007iW-27; Fri, 13 Dec 2013 14:22:36 +0000 From: Thomas Graf To: jesse@nicira.com Cc: dev@openvswitch.org, eric.dumazet@gmail.com, fleitner@redhat.com, ffusco@redhat.com, dborkmann@redhat.com, bhutchings@solarflare.com, netdev@vger.kernel.org, davem@davemloft.net Subject: [PATCH net-next 6/6] openvswitch: Compute checksum in skb_gso_segment() if needed Date: Fri, 13 Dec 2013 15:22:22 +0100 Message-Id: <4220a182739328641da98ef62f7b7699c3459c88.1386943635.git.tgraf@suug.ch> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: In-Reply-To: References: X-SRS-Rewrite: SMTP reverse-path rewritten from by merlin.infradead.org See http://www.infradead.org/rpr.html Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- net/openvswitch/datapath.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index ffed1cd..20ac30e 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c @@ -311,7 +311,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);