From patchwork Wed Jun 25 04:03:51 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Herbert X-Patchwork-Id: 363821 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 CF11114008C for ; Wed, 25 Jun 2014 14:04:13 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753242AbaFYEDy (ORCPT ); Wed, 25 Jun 2014 00:03:54 -0400 Received: from mail-oa0-f74.google.com ([209.85.219.74]:58608 "EHLO mail-oa0-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752612AbaFYEDx (ORCPT ); Wed, 25 Jun 2014 00:03:53 -0400 Received: by mail-oa0-f74.google.com with SMTP id i7so314184oag.3 for ; Tue, 24 Jun 2014 21:03:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:cc:subject:message-id:user-agent:mime-version :content-type; bh=axIfbL+bKWfhUIQ+5iTBdziJ5+HK0Odxjdf2AxXQKyk=; b=d37AjpOB1LStwxTXxnw+E64SSGvyEO7x7CDP8gDgj8rcosrs+0XU7FhQ0/uT+bC+63 SyXzHCtB14EadDHfSC8qaS30w8ndKTAgpfGndOB+58tqt2vuFQmqumA7WjfYUm0wN60/ cyfT72QWIZYtjwbgjV75YAMVxoW7geWTrsy2X8E/GsqEfyyifyFR7g3Oc0m7TPV5wifJ +bZV/oH6amieQwR5euzcJTibHYz81PtWQPwVYyNzKBeI9dZDjwZgOLmvEHkl+T8TS9q2 1bExzOP520VadxfvlVAVWMe1wGmQhUzNUHuCBCEtYAMLnyQ06KzRCIILORiH4dAEaSTg 3k1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:user-agent :mime-version:content-type; bh=axIfbL+bKWfhUIQ+5iTBdziJ5+HK0Odxjdf2AxXQKyk=; b=MXPEMlbEHT48HzK4dGukUGMYrdX+ghbTh4+e8/svhc6nV8muADdG0YpI1HbDtd2Jcv tT05PLCHf1zI4DwQ+CGxkouVvLsVmUgdNoDrYOHEFUCEDjpKu8aVwwbODqXxgDjotm/Z UmTVRv0iFKYNpETHAxaDnBahmam1U5IKanJDdurW0i02ua8250k3gKZN18p7rQlBYY45 uiiAzLaUE0AfICb5sMboaQM2nSySaXAW9LFfC4bZBnAFQNB7zbJ8Wv0lIWHQ+/8IHN52 4MhddK7EYnBD2sssf4umKKLK5UKntLR6FwDYLZp0cXBxekq3ITNL/M+xsyDKojUfl4qg 2RWw== X-Gm-Message-State: ALoCoQm2qPmqH5TeHC50GKc4OldwgEw69wFppGryYq4GB95pGge3XAiL5pK1iTxmKPlVDnVsUoJV X-Received: by 10.43.58.137 with SMTP id wk9mr1364787icb.10.1403669032565; Tue, 24 Jun 2014 21:03:52 -0700 (PDT) Received: from corp2gmr1-1.hot.corp.google.com (corp2gmr1-1.hot.corp.google.com [172.24.189.92]) by gmr-mx.google.com with ESMTPS id b39si212881yhj.0.2014.06.24.21.03.52 for (version=TLSv1.1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Jun 2014 21:03:52 -0700 (PDT) Received: from tomh.mtv.corp.google.com (tomh.mtv.corp.google.com [172.18.117.126]) by corp2gmr1-1.hot.corp.google.com (Postfix) with ESMTP id 5D68131C897; Tue, 24 Jun 2014 21:03:52 -0700 (PDT) Received: by tomh.mtv.corp.google.com (Postfix, from userid 60832) id E06DB200A56; Tue, 24 Jun 2014 21:03:51 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by tomh.mtv.corp.google.com (Postfix) with ESMTP id C8AC2200958; Tue, 24 Jun 2014 21:03:51 -0700 (PDT) Date: Tue, 24 Jun 2014 21:03:51 -0700 (PDT) From: Tom Herbert To: davem@davemloft.net cc: torvalds@linux-foundation.org, davej@redhat.com, akpm@linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] tcp: fix setting csum_start in tcp_gso_segment Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Dave Jones reported that a crash is occuring in csum_partial tcp_gso_segment inet_gso_segment ? update_dl_migration skb_mac_gso_segment __skb_gso_segment dev_hard_start_xmit sch_direct_xmit __dev_queue_xmit ? dev_hard_start_xmit dev_queue_xmit ip_finish_output ? ip_output ip_output ip_forward_finish ip_forward ip_rcv_finish ip_rcv __netif_receive_skb_core ? __netif_receive_skb_core ? trace_hardirqs_on __netif_receive_skb netif_receive_skb_internal napi_gro_complete ? napi_gro_complete dev_gro_receive ? dev_gro_receive napi_gro_receive It looks like a likely culprit is that SKB_GSO_CB()->csum_start is not set correctly when doing non-scatter gather. We are using offset as opposed to doffset. Reported-by: Dave Jones Signed-off-by: Tom Herbert --- net/core/skbuff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 9cd5344..c1a3303 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -2993,7 +2993,7 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb, skb_put(nskb, len), len, 0); SKB_GSO_CB(nskb)->csum_start = - skb_headroom(nskb) + offset; + skb_headroom(nskb) + doffset; continue; }