From patchwork Wed Apr 12 17:43:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumit Semwal X-Patchwork-Id: 97335 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp374443qgf; Wed, 12 Apr 2017 10:44:45 -0700 (PDT) X-Received: by 10.98.82.85 with SMTP id g82mr5793749pfb.245.1492019085471; Wed, 12 Apr 2017 10:44:45 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l17si21057414pgj.292.2017.04.12.10.44.45; Wed, 12 Apr 2017 10:44:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755221AbdDLRon (ORCPT + 6 others); Wed, 12 Apr 2017 13:44:43 -0400 Received: from mail-pf0-f181.google.com ([209.85.192.181]:35516 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755276AbdDLRoi (ORCPT ); Wed, 12 Apr 2017 13:44:38 -0400 Received: by mail-pf0-f181.google.com with SMTP id i5so16972988pfc.2 for ; Wed, 12 Apr 2017 10:44:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=oNxw+sy1EveL++rW+DEoiFtyLivmL8OCPP6+1+UOKDM=; b=LjbSfgPr0KxJs8qkGylhklz/aNejRumPgv9AxIdSPROc4/AARJg9uvkJbl3m3r12s6 qjTHcGH0kx7WQpNMvdtDnCQiIDvpACRqHygV/V05SVzmtrYJ7ofozEQPVjjLn7o7O0ft E6gVwp6Hfl5bGN6fARrTyXEJZlvfH873zjnBc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=oNxw+sy1EveL++rW+DEoiFtyLivmL8OCPP6+1+UOKDM=; b=Hoq908Mgz6K8xnAn3SSrpIaIMCC+5fKugRp7l6N+2mIAW9b24DLzJ/mKBJWWOt4Q8S fT73Vo4iQEgTvPd7d24/PQqAbS64Akvf/FXBk4HDKJCYzEo24NhImZytj66mLjRBiHx1 bxsS2D2FtUe5tJyntrhyX5gXnX2XEfUZ0addylh7wMipV6g2p5oqObUf/kE5CQO1KC9y VoAS7dJaket0TN/DH3h1qOUfOWFkPqnD2fXHZLZPI0bAUx4SK0psW6pKpAUf+rv8pIaV Qo6O313NSvLGDnfZcodwpvNJcKM58wq3W0ofj3sMqTIivQT/0L0Mtvg8TYmwIgJQM8bL sDdQ== X-Gm-Message-State: AFeK/H1EYH/wWcq0VxZ9RjlniFDXpLe5eURUe8exbKlB/pf78Rs2W5+FeMsTEHulgl3GI5wR X-Received: by 10.84.239.8 with SMTP id w8mr83988291plk.73.1492019058138; Wed, 12 Apr 2017 10:44:18 -0700 (PDT) Received: from phantom.lan ([106.51.225.38]) by smtp.gmail.com with ESMTPSA id r17sm37750019pfa.13.2017.04.12.10.44.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 12 Apr 2017 10:44:17 -0700 (PDT) From: Sumit Semwal To: stable@vger.kernel.org Cc: Thomas Falcon , "David S . Miller" , Sumit Semwal Subject: [v2 PATCH for-4.4 06/16] ibmveth: calculate gso_segs for large packets Date: Wed, 12 Apr 2017 23:13:40 +0530 Message-Id: <1492019030-13567-7-git-send-email-sumit.semwal@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1492019030-13567-1-git-send-email-sumit.semwal@linaro.org> References: <1492019030-13567-1-git-send-email-sumit.semwal@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Thomas Falcon [ Upstream commit 94acf164dc8f1184e8d0737be7125134c2701dbe ] Include calculations to compute the number of segments that comprise an aggregated large packet. Signed-off-by: Thomas Falcon Reviewed-by: Marcelo Ricardo Leitner Reviewed-by: Jonathan Maxwell Signed-off-by: David S. Miller Signed-off-by: Sumit Semwal --- drivers/net/ethernet/ibm/ibmveth.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c index 855c43d..f9e4988 100644 --- a/drivers/net/ethernet/ibm/ibmveth.c +++ b/drivers/net/ethernet/ibm/ibmveth.c @@ -1179,7 +1179,9 @@ map_failed: static void ibmveth_rx_mss_helper(struct sk_buff *skb, u16 mss, int lrg_pkt) { + struct tcphdr *tcph; int offset = 0; + int hdr_len; /* only TCP packets will be aggregated */ if (skb->protocol == htons(ETH_P_IP)) { @@ -1206,14 +1208,20 @@ static void ibmveth_rx_mss_helper(struct sk_buff *skb, u16 mss, int lrg_pkt) /* if mss is not set through Large Packet bit/mss in rx buffer, * expect that the mss will be written to the tcp header checksum. */ + tcph = (struct tcphdr *)(skb->data + offset); if (lrg_pkt) { skb_shinfo(skb)->gso_size = mss; } else if (offset) { - struct tcphdr *tcph = (struct tcphdr *)(skb->data + offset); - skb_shinfo(skb)->gso_size = ntohs(tcph->check); tcph->check = 0; } + + if (skb_shinfo(skb)->gso_size) { + hdr_len = offset + tcph->doff * 4; + skb_shinfo(skb)->gso_segs = + DIV_ROUND_UP(skb->len - hdr_len, + skb_shinfo(skb)->gso_size); + } } static int ibmveth_poll(struct napi_struct *napi, int budget)