Re: [Qemu-devel] [PATCH v4 12/17] vfio/platform: fix a wrong returned value in vfio_populate_device

2016-10-04 Thread Markus Armbruster
Eric Auger  writes:

> In case the vfio_init_intp fails we currently do not return an
> error value. This patch fixes the bug. The returned value is not
> explicit but in practice the error object is the one used to
> report the error to the end-user and the actual returned error
> value is not used.

The function's contract permits this by neglecting to say anything about
the return value %-)

The callers don't actually care about the value.

> Signed-off-by: Eric Auger 
> ---
>  hw/vfio/platform.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
> index 1a35da0..484e31f 100644
> --- a/hw/vfio/platform.c
> +++ b/hw/vfio/platform.c
> @@ -508,6 +508,7 @@ static int vfio_populate_device(VFIODevice *vbasedev, 
> Error **errp)
>  irq.flags);
>  intp = vfio_init_intp(vbasedev, irq, errp);
>  if (!intp) {
> +ret = -1;
>  goto irq_err;
>  }
>  }



Re: [Qemu-devel] [PATCH v4 12/17] vfio/platform: fix a wrong returned value in vfio_populate_device

2016-10-06 Thread Auger Eric
Hi,

On 04/10/2016 14:48, Markus Armbruster wrote:
> Eric Auger  writes:
> 
>> In case the vfio_init_intp fails we currently do not return an
>> error value. This patch fixes the bug. The returned value is not
>> explicit but in practice the error object is the one used to
>> report the error to the end-user and the actual returned error
>> value is not used.
> 
> The function's contract permits this by neglecting to say anything about
> the return value %-)
Yes the error is severe enough to tear things down. I dared to keep it
as is since the error now is reported in the Error object.

Thanks

Eric
> 
> The callers don't actually care about the value.
> 
>> Signed-off-by: Eric Auger 
>> ---
>>  hw/vfio/platform.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
>> index 1a35da0..484e31f 100644
>> --- a/hw/vfio/platform.c
>> +++ b/hw/vfio/platform.c
>> @@ -508,6 +508,7 @@ static int vfio_populate_device(VFIODevice *vbasedev, 
>> Error **errp)
>>  irq.flags);
>>  intp = vfio_init_intp(vbasedev, irq, errp);
>>  if (!intp) {
>> +ret = -1;
>>  goto irq_err;
>>  }
>>  }
>