[dpdk-dev] [dpdk-stable] [PATCH] app/testpmd: fix crash when doing port info of vdev

Ferruh Yigit ferruh.yigit at intel.com
Mon Feb 18 16:45:30 CET 2019


On 2/16/2019 1:36 AM, Stephen Hemminger wrote:
> From: Stephen Hemminger <sthemmin at microsoft.com>
> 
> Noticed a SEGV in testpmd doing:
>  > show port info 1
> on Hyper-V with failsafe/tap PMD.
> 
> A vdev may not have an associated device (i.e NULL) and therefore
> testpmd should skip devargs in that case.
> 
> Fixes: cf72ed09181b ("app/testpmd: display devargs in port info output")
> Signed-off-by: Stephen Hemminger <sthemmin at microsoft.com>
> ---
>  app/test-pmd/config.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index b9e5dd923b0f..38708db943d2 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -415,7 +415,8 @@ port_infos_display(portid_t port_id)
>  	rte_eth_dev_get_name_by_port(port_id, name);
>  	printf("\nDevice name: %s", name);
>  	printf("\nDriver name: %s", dev_info.driver_name);
> -	if (dev_info.device->devargs && dev_info.device->devargs->args)
> +	if (dev_info.device && dev_info.device->devargs &&
> +	    dev_info.device->devargs->args)

This means 'eth_dev->device' is NULL. Why the 'device' is NULL for eth_dev?
Is there anything to fix in the PMD?

>  		printf("\nDevargs: %s", dev_info.device->devargs->args);
>  	printf("\nConnect to socket: %u", port->socket_id);
>  
> 



More information about the dev mailing list