From patchwork Wed Jun 7 01:08:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13269884 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E00457C for ; Wed, 7 Jun 2023 01:08:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE560C433D2; Wed, 7 Jun 2023 01:08:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686100108; bh=3e2m0ANaODjZQ6OCWGCXqO65I3TmhSwyWFSXVVgxLm4=; h=From:To:Cc:Subject:Date:From; b=hWeJ5yoqnE3u56uTRRTtpZuqQp7VbMIuzl6D3oZBGvvlFr++yLm26xjD6BAeIv8Zi 3k5T+qWWGgnbyh19bFsEpkQDtutggdIO7QflMad00fmJvoed8vHABdlj4WSo8t+qqU co/D0u59pRPNXzqITjCQwp3ZkeIdmMYa2ShZ6lHHKwbp38ZvAG6tXTU3M8KkAMNXQS rJRXT+dB82SxhWA881CdR3U8QJ7xCM3uA7LzDFnNp7Zw5Y1xata+Q0gjaIYAxB3kRF YshrXSS0qf5ufsM7voPjOzY1ShZ5m5ZVo5csebFo7oYtQTL2AC0gIcytGcF9GDQ+Kg TyRgeirmOgTaA== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, Jakub Kicinski , David Wei , michael.chan@broadcom.com Subject: [PATCH net 1/2] eth: bnxt: fix the wake condition Date: Tue, 6 Jun 2023 18:08:25 -0700 Message-Id: <20230607010826.960226-1-kuba@kernel.org> X-Mailer: git-send-email 2.40.1 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org The down condition should be the negation of the wake condition, IOW when I moved it from: if (cond && wake()) to if (__netif_txq_completed_wake(cond)) Cond should have been negated. Flip it now. This bug leads to occasional crashes with netconsole. It may also lead to queue never waking up in case BQL is not enabled. Reported-by: David Wei Fixes: 08a096780d92 ("bnxt: use new queue try_stop/try_wake macros") Signed-off-by: Jakub Kicinski Reviewed-by: Michael Chan --- CC: michael.chan@broadcom.com --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index dcd9367f05af..1f04cd4cfab9 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -692,7 +692,7 @@ static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int nr_pkts) __netif_txq_completed_wake(txq, nr_pkts, tx_bytes, bnxt_tx_avail(bp, txr), bp->tx_wake_thresh, - READ_ONCE(txr->dev_state) != BNXT_DEV_STATE_CLOSING); + READ_ONCE(txr->dev_state) == BNXT_DEV_STATE_CLOSING); } static struct page *__bnxt_alloc_rx_page(struct bnxt *bp, dma_addr_t *mapping, From patchwork Wed Jun 7 01:08:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13269885 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D3D5627 for ; Wed, 7 Jun 2023 01:08:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 76B0FC4339B; Wed, 7 Jun 2023 01:08:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686100108; bh=h806LUlShbEMZ6iJ2AKEySQ9iyfzy6Q6qNhuUw6zAeA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=atteOfbWZGl/rESSq3vSo81Jr6NbwBTFxxa3GgCONwFAih39oQIkXaVyyK6YPSr+t b0d7MBprknrzYg51H8M1RY4Y3vWVqJ5B3IOM5ZxLKSXcimepXr9ekVTKzp6cbz3iqO qMVW9R6OdCywCMNTUrjS2Z/sAayaDNABmzPWLn25GehXRRSHZE1J9dapY8BjGNb39i Uycy5Gf+z5WDScYal7tugaW7O0nwH7eTuEtYxl/aVLOPbpjHTOUGjmulTJul/k+DQN 91dieHtTKhI4LWNRxxSN2ttbftlCq+l0qdyRKsNBikdqkquCRfnbwsIIfe01F+sRVr tUno8E1pRcj5Q== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, Jakub Kicinski , jesse.brandeburg@intel.com, anthony.l.nguyen@intel.com Subject: [PATCH net 2/2] eth: ixgbe: fix the wake condition Date: Tue, 6 Jun 2023 18:08:26 -0700 Message-Id: <20230607010826.960226-2-kuba@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230607010826.960226-1-kuba@kernel.org> References: <20230607010826.960226-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Flip the netif_carrier_ok() condition in queue wake logic. When I moved it to inside __netif_txq_completed_wake() I missed negating it. This made the condition ineffective and could probably lead to crashes. Fixes: 301f227fc860 ("net: piggy back on the memory barrier in bql when waking queues") Signed-off-by: Jakub Kicinski Reviewed-by: Tony Nguyen --- CC: jesse.brandeburg@intel.com CC: anthony.l.nguyen@intel.com --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 5d83c887a3fc..1726297f2e0d 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -1256,7 +1256,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector, if (!__netif_txq_completed_wake(txq, total_packets, total_bytes, ixgbe_desc_unused(tx_ring), TX_WAKE_THRESHOLD, - netif_carrier_ok(tx_ring->netdev) && + !netif_carrier_ok(tx_ring->netdev) || test_bit(__IXGBE_DOWN, &adapter->state))) ++tx_ring->tx_stats.restart_queue;