[dpdk-dev] [PATCH v6 20/26] eal_pci: continue probing even on failures

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Mar 8 23:04:01 CET 2017


2017-02-28 13:53, Aaron Conole:
> +	int ret_1 = 0;

You do not need to add a new variable.

>  	int ret = 0;
>  
>  	if (rte_eal_devargs_type_count(RTE_DEVTYPE_WHITELISTED_PCI) == 0)
> @@ -430,17 +432,20 @@ rte_eal_pci_probe(void)
>  
>  		/* probe all or only whitelisted devices */
>  		if (probe_all)
> -			ret = pci_probe_all_drivers(dev);
> +			ret_1 = pci_probe_all_drivers(dev);
>  		else if (devargs != NULL &&
>  			devargs->type == RTE_DEVTYPE_WHITELISTED_PCI)
> -			ret = pci_probe_all_drivers(dev);
> -		if (ret < 0)
> -			rte_exit(EXIT_FAILURE, "Requested device " PCI_PRI_FMT
> +			ret_1 = pci_probe_all_drivers(dev);
> +		if (ret_1 < 0) {
> +			RTE_LOG(ERR, EAL, "Requested device " PCI_PRI_FMT
>  				 " cannot be used\n", dev->addr.domain, dev->addr.bus,
>  				 dev->addr.devid, dev->addr.function);
> +			rte_errno = errno;
> +			ret = 1;
> +		}
>  	}
>  
> -	return 0;
> +	return -ret;

It may be more explicit to use only one variable ret and filter
the positive values:
	ret < 0 ? -1 : 0


More information about the dev mailing list