From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E1C84A0547 for ; Mon, 8 Feb 2021 17:30:54 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B40791606F1; Mon, 8 Feb 2021 17:30:54 +0100 (CET) Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by mails.dpdk.org (Postfix) with ESMTP id 68FB81606F1 for ; Mon, 8 Feb 2021 17:30:53 +0100 (CET) Received: by mail-pl1-f173.google.com with SMTP id u15so8114345plf.1 for ; Mon, 08 Feb 2021 08:30:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:mime-version; bh=0RFAE8XsoVLPGBzGyhqNOw79WCroAymQ98ukJWzwjgA=; b=Omq84BBChiRf4utrl9r4z+oo00bd70ivfheQxdS4QfnOcoxg2OBRN63kAp6g1dCs+v nGN1JYk0W7aggCcO/V7qzpAz03f+BWAXmqsGa9slnoemKCzq/vmcNKPPvCot6BsKM7QT OAGjZgQNkRBsUjGLrCWqH1vb+yj1CYehcQRgk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version; bh=0RFAE8XsoVLPGBzGyhqNOw79WCroAymQ98ukJWzwjgA=; b=gCuK9++sGUkOQoO0s6xORtkIPzE95t7MjS0zaFvA7btD9qWCD7lXYFV4CH6Z+IDueC V6ZEggJO1W1yfsIlw9SNfWx8OQLbT8CUzSGNVxsNTYTP1dtC7zDkIVIjNTgg4U824cau Rlb0tnIbJ7AWtmeBWQ6IMbuuJJTR9KMggT7pA9ApnHuuTTv41Jr8lg6mAQY0bWcBjXnd 1sblP26ZDLQLfw28RoYn0UnGa56uiAt2ika9tKiVubzOOFNhj9dhVokO7EVvBRmehB/S 9ntVIfUhvZxzVvc9x5GzF/y8Fo/QrP9yXz+pxGD5I8WsG6ZS9oz7cp9wuW3kHlFJpXcL YFMg== X-Gm-Message-State: AOAM532n/yKar/90skFcluvlEmMA+Nab3qmVvgjoVP/tt1dJJI0jlUND 3Xh9lgypMd3cxSJ4NSncVsDCOw== X-Google-Smtp-Source: ABdhPJwOSSszfYlOlSgbSJNG21rSIUJf4+Ft49g1BoQJRjoqZFYxaENmE4JQGJFpjKexedLyP2w9KA== X-Received: by 2002:a17:90a:9414:: with SMTP id r20mr16883672pjo.222.1612801852338; Mon, 08 Feb 2021 08:30:52 -0800 (PST) Received: from localhost.localdomain ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id 30sm20133204pgl.77.2021.02.08.08.30.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Feb 2021 08:30:51 -0800 (PST) From: Lance Richardson To: Ajit Khaparde , Somnath Kotur Cc: stable@dpdk.org Date: Mon, 8 Feb 2021 11:30:41 -0500 Message-Id: <20210208163041.88567-1-lance.richardson@broadcom.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000869dc005bad5b176" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-stable] [PATCH 19.11] net/bnxt: fix doorbell write ordering X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" --000000000000869dc005bad5b176 Content-Transfer-Encoding: 8bit Write completion queue doorbell before receive descriptor doorbell to avoid possibility of completion queue overflow when completion queue size is equal to receive descriptor ring size. Remove unnecessary compiler barriers (db write functions have the necessary barriers.) Fixes: 637e34befd9c ("net/bnxt: optimize Rx processing") Cc: stable@dpdk.org Signed-off-by: Lance Richardson Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_rxr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c index 5271d02366..0a8861c5a0 100644 --- a/drivers/net/bnxt/bnxt_rxr.c +++ b/drivers/net/bnxt/bnxt_rxr.c @@ -663,6 +663,10 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, goto done; } + /* Ring the completion queue doorbell. */ + bnxt_db_cq(cpr); + + /* Ring the receive descriptor doorbell. */ if (prod != rxr->rx_prod) bnxt_db_write(&rxr->rx_db, rxr->rx_prod); @@ -670,8 +674,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, if (ag_prod != rxr->ag_prod) bnxt_db_write(&rxr->ag_db, rxr->ag_prod); - bnxt_db_cq(cpr); - /* Attempt to alloc Rx buf in case of a previous allocation failure. */ if (rc == -ENOMEM) { int i = RING_NEXT(rxr->rx_ring_struct, prod); -- 2.25.1 --000000000000869dc005bad5b176--