From: Lukasz Bartosik Date: Thu, 16 Apr 2020 15:47:40 +0000 (+0200) Subject: event/octeontx2: fix queue removal from Rx adapter X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=534d1d4b65468deed18723fb45818275887c8ecd;p=dpdk.git event/octeontx2: fix queue removal from Rx adapter When eth port queue is removed from Rx adapter using rte_event_eth_rx_adapter_queue_del() it incorrectly initializes CQ context instead of modifying it. This might lead to a crash when CQ context is modified as a part of rte_eth_dev_stop() sequence as CQ will hold invalid entries. This is responsibility of an application to call rte_event_eth_rx_adapter_queue_del() to remove eth port queue from Rx adapter in tear down sequence. Fixes: 37720fc1fba8 ("event/octeontx2: add Rx adapter") Cc: stable@dpdk.org Signed-off-by: Lukasz Bartosik Acked-by: Pavan Nikhilesh --- diff --git a/drivers/event/octeontx2/otx2_evdev_adptr.c b/drivers/event/octeontx2/otx2_evdev_adptr.c index 233cba2aa3..8bdcfa3ea5 100644 --- a/drivers/event/octeontx2/otx2_evdev_adptr.c +++ b/drivers/event/octeontx2/otx2_evdev_adptr.c @@ -133,7 +133,7 @@ sso_rxq_disable(struct otx2_eth_dev *dev, uint16_t qid) aq = otx2_mbox_alloc_msg_nix_aq_enq(mbox); aq->qidx = qid; aq->ctype = NIX_AQ_CTYPE_CQ; - aq->op = NIX_AQ_INSTOP_INIT; + aq->op = NIX_AQ_INSTOP_WRITE; aq->cq.ena = 1; aq->cq.caching = 1; @@ -144,7 +144,7 @@ sso_rxq_disable(struct otx2_eth_dev *dev, uint16_t qid) rc = otx2_mbox_process(mbox); if (rc < 0) { - otx2_err("Failed to init cq context"); + otx2_err("Failed to enable cq context"); goto fail; }