On Fri, 27 Mar 2026 09:39:02 +0100
David Marchand <[email protected]> wrote:
> In case no rxq has been set up (like when starting testpmd with no mempool
> drivers), a crash happens in tap_dev_close:
>
> Thread 1 "dpdk-testpmd" received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7fad68b in tap_dev_close (dev=dev@entry=0x4c4a80
> <rte_eth_devices@INTERNAL>) at ../drivers/net/tap/rte_eth_tap.c:1111
> 1111 struct rx_queue *rxq = dev->data->rx_queues[i];
>
> (gdb) p dev->data->rx_queues
> $4 = (void **) 0x0
>
> Fixes: 23e2387b49a1 ("net/tap: allocate queue structures dynamically")
>
> Signed-off-by: David Marchand <[email protected]>
> ---
> Changes since v1:
> - as Stephen AI reported, [rt]x_queues array are sized against
> dev->data->nb_[rt]x_queues, so the loop after the 23e2387b49a1 rework
> can go out of bound. Since nb_rx_queues == nb_tx_queues with this
> driver, simply check the number of configured rxq,
>
> ---
Applied to next-net