Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp770945rwb; Mon, 26 Sep 2022 05:46:21 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5lvEUdhqp0OMF68qPvE6xkrcNzefY6qtQtC7u8NBBBjforxYsVukTSXRbsUZdtLIswx4Rf X-Received: by 2002:a17:906:5a6b:b0:73c:c9ee:8b5c with SMTP id my43-20020a1709065a6b00b0073cc9ee8b5cmr17699222ejc.310.1664196381074; Mon, 26 Sep 2022 05:46:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664196381; cv=none; d=google.com; s=arc-20160816; b=Y4X0ldt4OepPJbBGLilVSC/+DUPkByIw4txPRyW66K+Ggh8TU5dPACFFequ0y/Jqbi 39dlbV/gqwDFuz/KcQpWrfkYZALAIB8RRnIjG5LQjWYbz2XXwTX4nRfTjUNKZVrd+Wuy JsnSpWWZeF56sbXa63ClCIlqVl6wAMXXEDHnfIItRWbQ0MFdBfHeVbIVTLQ3sAbOdJ2t bgUWS2OWap3UHiDehHHOFak/zrhnPxUQQjaUY2XI9qM2cCDB4E3FAAhJkCGBXQZxEMAZ iuRamUXUzzvpYc09a6CiJDoIuXy1Br0yVtSqsviCrL2qdVav8WNNUegTTmsEnKPdSTCq zmbw== 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=PmbKVI/CnBMjhBnCAeV8RRw2scXKmldJMBOLpZtDDcI=; b=ZQWnfhZFE4mr2GVss5ALTxTkcVrp2DFZSW2PWtq0asNdw3ZC0RDlx7TSBTi6OD6f0o 0w/RAqYRl66NzNKrhltx/iT1XcVs0hrlihrq+5+LKSR5lrRU2j1t+uSwaqxfVznimMhA kkH+3+opyhnpchYBxJ+a+XbYxVAhA1fB5jxnKVO9ofYiOtYpO4ni5d7hpoXIkXSw5yBn r/V6mBDdGynM5I/CaP4PZEyCxJApdj/04oHJJPvW3MXhXjUHmbKzTdzC+1JelPXbkaSg 0nA4PQaxUgrIifO9EhmFlqP77h6/9HCLKxLX6c8ZnFAGjuNfyirkBIzu3gN5rdnxAiNj MmWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=eQPHYdan; 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 y12-20020a50e60c000000b0044efdf9db9fsi13710309edm.68.2022.09.26.05.45.55; Mon, 26 Sep 2022 05:46:21 -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=eQPHYdan; 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 S237765AbiIZLUh (ORCPT + 99 others); Mon, 26 Sep 2022 07:20:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45762 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237806AbiIZLTC (ORCPT ); Mon, 26 Sep 2022 07:19:02 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2EC745280C; Mon, 26 Sep 2022 03:38:45 -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 D861C604F5; Mon, 26 Sep 2022 10:37:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C7263C433D7; Mon, 26 Sep 2022 10:37:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1664188630; bh=WV/zMXn4qK+3/dXRfNeM1DEaI727czjNjicKeB4wghc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eQPHYdan9UL/LHH2graEHJk15vlU/19n62MwcxrZUHAMMAmNqWJYDUjQtYINzrVSs W6bvvGpIRQGvFSFJNoD72BlUqvc44KTpdN49BXBOlZLHEPsNNYe7YLxa02dTbfcEZh sdKmGlnnIYv2wrukfg7IA97SJZZ6qgf2sMPvHy+c= 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.15 070/148] iavf: Fix cached head and tail value for iavf_get_tx_pending Date: Mon, 26 Sep 2022 12:11:44 +0200 Message-Id: <20220926100758.661648298@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220926100756.074519146@linuxfoundation.org> References: <20220926100756.074519146@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 5448ed0e0357..a99d5db15406 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