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

Reply via email to