[PATCH v2] net/tap: fix close for partially configured port

Stephen Hemminger stephen at networkplumber.org
Fri Mar 27 17:22:10 CET 2026


On Fri, 27 Mar 2026 09:39:02 +0100
David Marchand <david.marchand at redhat.com> 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 at entry=0x4c4a80
> 	<rte_eth_devices at 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 <david.marchand at redhat.com>
> ---
> 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


More information about the dev mailing list