[dpdk-stable] [dpdk-dev] [PATCH 2/2] bus/fslmc: fix check for vfio_group_fd

wangyunjian wangyunjian at huawei.com
Thu Sep 17 14:43:47 CEST 2020


Friendly ping

> -----Original Message-----
> From: wangyunjian
> Sent: Tuesday, May 19, 2020 11:42 AM
> To: dev at dpdk.org
> Cc: anatoly.burakov at intel.com; hemant.agrawal at nxp.com;
> sachin.saxena at nxp.com; Lilijun (Jerry) <jerry.lilijun at huawei.com>; xudingke
> <xudingke at huawei.com>; wangyunjian <wangyunjian at huawei.com>;
> stable at dpdk.org
> Subject: [dpdk-dev] [PATCH 2/2] bus/fslmc: fix check for vfio_group_fd
> 
> From: Yunjian Wang <wangyunjian at huawei.com>
> 
> The issue is that a file descriptor at 0 is a valid one. Currently the file not found,
> the return value will be set to 0. As a result, it is impossible to distinguish
> between a correct descriptor and a failed return value. Fix it to return -ENOENT
> instead of 0.
> 
> Fixes: a69f79300262 ("bus/fslmc: support multi VFIO group")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Yunjian Wang <wangyunjian at huawei.com>
> ---
>  drivers/bus/fslmc/fslmc_vfio.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c index
> 970969d2b..04ccf4af6 100644
> --- a/drivers/bus/fslmc/fslmc_vfio.c
> +++ b/drivers/bus/fslmc/fslmc_vfio.c
> @@ -448,11 +448,14 @@ fslmc_vfio_setup_device(const char *sysfs_base,
> const char *dev_addr,
> 
>  	/* get the actual group fd */
>  	vfio_group_fd = rte_vfio_get_group_fd(iommu_group_no);
> -	if (vfio_group_fd < 0)
> +	if (vfio_group_fd < 0 && vfio_group_fd != -ENOENT)
>  		return -1;
> 
> -	/* if group_fd == 0, that means the device isn't managed by VFIO */
> -	if (vfio_group_fd == 0) {
> +	/*
> +	 * if vfio_group_fd == -ENOENT, that means the device
> +	 * isn't managed by VFIO
> +	 */
> +	if (vfio_group_fd == -ENOENT) {
>  		RTE_LOG(WARNING, EAL, " %s not managed by VFIO driver,
> skipping\n",
>  				dev_addr);
>  		return 1;
> --
> 2.23.0
> 



More information about the stable mailing list