[dpdk-dev] [PATCH v2] event/octeontx2: fix queue removal from Rx adapter

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Fri May 1 13:14:29 CEST 2020


>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 at dpdk.org
>
>Signed-off-by: Lukasz Bartosik <lbartosik at marvell.com>

Acked-by: Pavan Nikhilesh <pbhagavatula at marvell.com>

>---
> drivers/event/octeontx2/otx2_evdev_adptr.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/event/octeontx2/otx2_evdev_adptr.c
>b/drivers/event/octeontx2/otx2_evdev_adptr.c
>index 233cba2..8bdcfa3 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;
> 	}
>
>--
>2.7.4



More information about the dev mailing list