Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp308456ybi; Wed, 29 May 2019 21:58:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqxEQwGmUlx2Cr+5lXzjdh6hl95PiqyTmoitt9XTUhUHVYKK5FDbWOl8TBAaYtut8m2Jqdwj X-Received: by 2002:a17:90a:ca14:: with SMTP id x20mr912810pjt.98.1559192300014; Wed, 29 May 2019 21:58:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559192300; cv=none; d=google.com; s=arc-20160816; b=TrVMp3aipJ6CugWngVynGf170w0QlAsBn1lQuEmKmmU684qkL8Qai/FFezmedSUypv Lrp21VLB5NGpaWZFsLwlaqgR1t6u9mrWpgN16rkbdjPBfsj5//JQmjWn2Y6+2D/lRNJR /ECmJjJM5H3XgfnTBRMw6K3/FwmqJA095RKiCPyb3+ObAMtm/ciiBKwCwIgTAPE8egbI S7Yyy5NjSNoX9C5XUkNm8rZ9/fnHaXhix0qlvhSATuCuX/xAhR0T973ktWkwsnczvRLU QLSO4uG7V/209J9mQW+JORffL6gQb9LZN4YFiBL9OKaDLcW1tHKUWdnnyl9NVYi9TG8X wsxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=55OBiX/mq1oIX8lB5O8XWf+ToKkEKJeYBKsriXR/qiw=; b=Wte3zLFtqv3mpp1flsFz08f3jKQLdmDc746f6n3jXgXZHt7KVAqmRyujYEHkR5eG1f Z3Z2TI/pQxQ8t64h1bSLHWkgCpfxVifC8mJiQPwQG+w0PANro3pw5V2plHlkX7TYs2IB kRTwOV7JMsvvOjGcozqkIHaXTPTUb6SenHvcgVjHbwa15evLgqaoHaEnhL20wY6SV40T BqrNWvEBYcja6jP4xbAAPdpgBaC7hviAJiRLsnHB0J0K8rzQUhG4T3/IUr/7wRoMgrje diZv/hHNQRRGgm+dA0MsBPVF+mP+yReOlNMLOz+ip2/bnX2qiuX0siBWDCJbrgrmDBT9 7TbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="dYrw4Z/j"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i38si2200357plb.132.2019.05.29.21.58.04; Wed, 29 May 2019 21:58:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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=@kernel.org header.s=default header.b="dYrw4Z/j"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388773AbfE3EzP (ORCPT + 99 others); Thu, 30 May 2019 00:55:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:46796 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728017AbfE3DKR (ORCPT ); Wed, 29 May 2019 23:10:17 -0400 Received: from localhost (ip67-88-213-2.z213-88-67.customer.algx.net [67.88.213.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 737AF244BD; Thu, 30 May 2019 03:10:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559185816; bh=dIX+XPG1CzanJnUiB7bQWSthEH1EBW7Pr3kmuaUzxJE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dYrw4Z/jpkK7BtDKGrWy8svwvqMAoPbWggy3XZ7RgHsN3e4bb+GlGFLF7dUS31UDo 6U6DRwvkONfpRfne5+l4rMopMG10RP83qtQWBsCrmjnlYOb09QgU1aTPRKS1ICsaNN OBjyim2LkjjhlTvY6Qj1YVhbBWfM29YWsh6/tmXQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yunsheng Lin , Peng Li , Huazhong Tan , "David S. Miller" , Sasha Levin Subject: [PATCH 5.1 109/405] net: hns3: fix for TX clean num when cleaning TX BD Date: Wed, 29 May 2019 20:01:47 -0700 Message-Id: <20190530030546.519716984@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030540.291644921@linuxfoundation.org> References: <20190530030540.291644921@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 63380a1ae4ced8aef67659ff9547c69ef8b9613a ] hns3_desc_unused() returns how many BD have been cleaned, but new buffer has not been attached to them. The register of HNS3_RING_RX_RING_FBDNUM_REG returns how many BD need allocating new buffer to or need to cleaned. So the remaining BD need to be clean is HNS3_RING_RX_RING_FBDNUM_REG - hns3_desc_unused(). Also, new buffer can not attach to the pending BD when the last BD is not handled, because memcpy has not been done on the first pending BD. This patch fixes by subtracting the pending BD num from unused_count after 'HNS3_RING_RX_RING_FBDNUM_REG - unused_count' is used to calculate the BD bum need to be clean. Fixes: e55970950556 ("net: hns3: Add handling of GRO Pkts not fully RX'ed in NAPI poll") Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 162cb9afa0e70..0208efe282775 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -2705,7 +2705,7 @@ int hns3_clean_rx_ring( #define RCB_NOF_ALLOC_RX_BUFF_ONCE 16 struct net_device *netdev = ring->tqp->handle->kinfo.netdev; int recv_pkts, recv_bds, clean_count, err; - int unused_count = hns3_desc_unused(ring) - ring->pending_buf; + int unused_count = hns3_desc_unused(ring); struct sk_buff *skb = ring->skb; int num; @@ -2714,6 +2714,7 @@ int hns3_clean_rx_ring( recv_pkts = 0, recv_bds = 0, clean_count = 0; num -= unused_count; + unused_count -= ring->pending_buf; while (recv_pkts < budget && recv_bds < num) { /* Reuse or realloc buffers */ -- 2.20.1