summaryrefslogtreecommitdiff
path: root/drivers/net/bnxt/bnxt_rxr.c
diff options
context:
space:
mode:
authorLance Richardson <lance.richardson@broadcom.com>2019-07-24 12:49:32 -0400
committerFerruh Yigit <ferruh.yigit@intel.com>2019-07-25 11:43:05 +0200
commitbd0a14c99f6588ea4c60a234e9e053fd2b329964 (patch)
treef93b170c53fa5fc184d03fd0b7e646d637ac80c7 /drivers/net/bnxt/bnxt_rxr.c
parent0270853d94e298820f3361b43dfdbf95e6a05c88 (diff)
downloaddpdk-next-eventdev-bd0a14c99f6588ea4c60a234e9e053fd2b329964.zip
dpdk-next-eventdev-bd0a14c99f6588ea4c60a234e9e053fd2b329964.tar.gz
dpdk-next-eventdev-bd0a14c99f6588ea4c60a234e9e053fd2b329964.tar.xz
net/bnxt: use dedicated CPR for async events
This commit enables the creation of a dedicated completion ring for asynchronous event handling instead of handling these events on a receive completion ring. For the stingray platform and other platforms needing tighter control of resource utilization, we retain the ability to process async events on a receive completion ring. For Thor-based adapters, we use a dedicated NQ (notification queue) ring for async events (async events can't currently be received on a completion ring due to a firmware limitation). Rename "def_cp_ring" to "async_cp_ring" to better reflect its purpose (async event notifications) and to avoid confusion with VNIC default receive completion rings. Allow rxq 0 to be stopped when not being used for async events. Signed-off-by: Lance Richardson <lance.richardson@broadcom.com> Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Diffstat (limited to 'drivers/net/bnxt/bnxt_rxr.c')
-rw-r--r--drivers/net/bnxt/bnxt_rxr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index 54a2cf5..185a0e3 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -564,7 +564,7 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
nb_rx_pkts++;
if (rc == -EBUSY) /* partial completion */
break;
- } else {
+ } else if (!BNXT_NUM_ASYNC_CPR(rxq->bp)) {
evt =
bnxt_event_hwrm_resp_handler(rxq->bp,
(struct cmpl_base *)rxcmp);