Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp828204rwb; Mon, 26 Sep 2022 06:25:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6SBM3IrvSw6N/FOL91TrYUltUwyzawqFU9zj0doY6fsT2YNyd7uCNs5Qpn6nSOgmbza1hi X-Received: by 2002:a17:906:7304:b0:6ff:a76:5b09 with SMTP id di4-20020a170906730400b006ff0a765b09mr18320367ejc.193.1664198733591; Mon, 26 Sep 2022 06:25:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664198733; cv=none; d=google.com; s=arc-20160816; b=EUeFO2pyxZc9D4ywcoNMQ0wJD22rZPGX2AnTsGuhDtLE4gUAuEjFaDXLZmxxxE0TaJ cZQ0FCRbjmezDTl99Td5hxn805MxMCSsbUFBj81n87gvySn3fIFj/59IuOJ/9QFdyHqj l51Tf0WBc4xJIfOPc3LAdKsVFK2QiVpGLU+g2Iu4a7hwLf3dGScqTnw0Goo1JbQw4t5+ slfVfJAkpIt0MCnV7hMT7nGwfNBFtNVoS4buLD/ZaLhDBiTElIXJZKhN115IAqXnUx8R homRoAgXUNmoEsuVXErf+yTNOplnDI8wikB+hu66Ea2mdXFNA0WQZqa3pCTsgGHAc+HM aryQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=j1dt8Auvj5GoVs1jcS0d2LJkpnVy4teunJT3izZRLSc=; b=j4dLl/gsOCq+R6TctKT3L6J5dw3cvgmHgy/fPfEXY49D5eSCCOfErcfWU8OlP66JHd fTA4Z/5eBwmVB/cE21q6fmJZdbTVBK0yBnoBERJDhVlZXIdBvTpl2Gr6l4NqhxhN/d40 X1xM8xnc/i+z8G4xCLPfHnMz6V1I0xzSvG2Z4MmZ8/r+wH99NWa/2m3Jud5CP0a4MJqd dXtobuLjOAEoIjx5XcbGfmfw0S7mv7sUyxXTihSYeedPKK1b1J6PJMRN0VcG4T+wJMJE C8HVu1CXoo6dPLkOIvwlyzmx3Ui0l9gHvMf8XdK5r7V3aqBWsm1le5ydom2gWUG3yx6z jNGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tJYad4NS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k16-20020a05640212d000b00457596e4babsi1630814edx.310.2022.09.26.06.25.07; Mon, 26 Sep 2022 06:25:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tJYad4NS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237051AbiIZLCM (ORCPT + 99 others); Mon, 26 Sep 2022 07:02:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237389AbiIZK7k (ORCPT ); Mon, 26 Sep 2022 06:59:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F05C15C9CA; Mon, 26 Sep 2022 03:31:06 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9152060C79; Mon, 26 Sep 2022 10:29:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98FD3C433C1; Mon, 26 Sep 2022 10:29:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1664188193; bh=tQDvKdHglV3lGcAyaCA5FPn9n7w9PdqvimZODFmQzuI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tJYad4NS9+2FukKKKH3dnS2KYqG0EghbGuKaN8/cLdMrwz0rs8iG7fPRmjTHnJJ3W zwCuWvnYKdv5ZfnWxx7O/K2YL375FdGXthfSIGQc094xiPl9+KxGKdLRgzQeHsHnXU SujQbLF8563AP5sAu+BQgCY13rlU8IDjJ0AKx2lw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Brett Creeley , Norbert Zulinski , Mateusz Palczewski , Konrad Jankowski , Tony Nguyen , Sasha Levin Subject: [PATCH 5.10 071/141] iavf: Fix cached head and tail value for iavf_get_tx_pending Date: Mon, 26 Sep 2022 12:11:37 +0200 Message-Id: <20220926100757.018223006@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220926100754.639112000@linuxfoundation.org> References: <20220926100754.639112000@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Brett Creeley [ Upstream commit 809f23c0423a43266e47a7dc67e95b5cb4d1cbfc ] The underlying hardware may or may not allow reading of the head or tail registers and it really makes no difference if we use the software cached values. So, always used the software cached values. Fixes: 9c6c12595b73 ("i40e: Detection and recovery of TX queue hung logic moved to service_task from tx_timeout") Signed-off-by: Brett Creeley Co-developed-by: Norbert Zulinski Signed-off-by: Norbert Zulinski Signed-off-by: Mateusz Palczewski Tested-by: Konrad Jankowski Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/iavf/iavf_txrx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c b/drivers/net/ethernet/intel/iavf/iavf_txrx.c index 99983f7a0ce0..8f6269e9f6a7 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c +++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c @@ -114,8 +114,11 @@ u32 iavf_get_tx_pending(struct iavf_ring *ring, bool in_sw) { u32 head, tail; + /* underlying hardware might not allow access and/or always return + * 0 for the head/tail registers so just use the cached values + */ head = ring->next_to_clean; - tail = readl(ring->tail); + tail = ring->next_to_use; if (head != tail) return (head < tail) ? -- 2.35.1