[v1] app/test: fix segfault in Tx adapter autotest
Checks
Commit Message
Uninitialized mbufs are enqueued to eventdev which causes segfault
on freeing the mbuf in tx adapter.
Fixed by initializing mbufs before enqueuing to eventdev.
Fixes: 46cf97e4bbfa ("eventdev: add test for eth Tx adapter")
Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
Comments
> Uninitialized mbufs are enqueued to eventdev which causes segfault
> on freeing the mbuf in tx adapter.
> Fixed by initializing mbufs before enqueuing to eventdev.
>
> Fixes: 46cf97e4bbfa ("eventdev: add test for eth Tx adapter")
>
> Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> diff --git a/app/test/test_event_eth_tx_adapter.c
> b/app/test/test_event_eth_tx_adapter.c
> index dbd22f6..482b8e6 100644
> --- a/app/test/test_event_eth_tx_adapter.c
> +++ b/app/test/test_event_eth_tx_adapter.c
> @@ -484,6 +484,10 @@ tx_adapter_service(void)
> int internal_port;
> uint32_t cap;
>
> + /* Initialize mbufs */
> + for (i = 0; i < RING_SIZE; i++)
> + rte_pktmbuf_reset(&bufs[i]);
> +
> memset(&dev_conf, 0, sizeof(dev_conf));
> err = rte_event_eth_tx_adapter_caps_get(TEST_DEV_ID,
> TEST_ETHDEV_ID,
> &cap);
> --
> 2.6.4
On Mon, Feb 26, 2024 at 6:30 PM Pavan Nikhilesh Bhagavatula
<pbhagavatula@marvell.com> wrote:
>
> > Uninitialized mbufs are enqueued to eventdev which causes segfault
> > on freeing the mbuf in tx adapter.
> > Fixed by initializing mbufs before enqueuing to eventdev.
> >
> > Fixes: 46cf97e4bbfa ("eventdev: add test for eth Tx adapter")
> >
> > Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
>
> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Applied to dpdk-next-eventdev/for-main. Thanks
>
> >
> > diff --git a/app/test/test_event_eth_tx_adapter.c
> > b/app/test/test_event_eth_tx_adapter.c
> > index dbd22f6..482b8e6 100644
> > --- a/app/test/test_event_eth_tx_adapter.c
> > +++ b/app/test/test_event_eth_tx_adapter.c
> > @@ -484,6 +484,10 @@ tx_adapter_service(void)
> > int internal_port;
> > uint32_t cap;
> >
> > + /* Initialize mbufs */
> > + for (i = 0; i < RING_SIZE; i++)
> > + rte_pktmbuf_reset(&bufs[i]);
> > +
> > memset(&dev_conf, 0, sizeof(dev_conf));
> > err = rte_event_eth_tx_adapter_caps_get(TEST_DEV_ID,
> > TEST_ETHDEV_ID,
> > &cap);
> > --
> > 2.6.4
>
@@ -484,6 +484,10 @@ tx_adapter_service(void)
int internal_port;
uint32_t cap;
+ /* Initialize mbufs */
+ for (i = 0; i < RING_SIZE; i++)
+ rte_pktmbuf_reset(&bufs[i]);
+
memset(&dev_conf, 0, sizeof(dev_conf));
err = rte_event_eth_tx_adapter_caps_get(TEST_DEV_ID, TEST_ETHDEV_ID,
&cap);