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,