[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 04/11] s390x/pci: Fix harmless mistake in zpci's property fid
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 04/11] s390x/pci: Fix harmless mistake in zpci's property fid's setter |
Date: |
Mon, 27 Apr 2020 16:40:02 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Matthew Rosato <address@hidden> writes:
> On 4/24/20 3:20 PM, Markus Armbruster wrote:
>> s390_pci_set_fid() sets zpci->fid_defined to true even when
>> visit_type_uint32() failed. Reproducer: "-device zpci,fid=junk".
>> Harmless in practice, because qdev_device_add() then fails, throwing
>> away @zpci. Fix it anyway.
>>
>> Cc: Matthew Rosato <address@hidden>
>> Cc: Cornelia Huck <address@hidden>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>> hw/s390x/s390-pci-bus.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
>> index ed8be124da..19ee1f02bb 100644
>> --- a/hw/s390x/s390-pci-bus.c
>> +++ b/hw/s390x/s390-pci-bus.c
>> @@ -1276,7 +1276,9 @@ static void s390_pci_set_fid(Object *obj, Visitor *v,
>> const char *name,
>> return;
>> }
>> - visit_type_uint32(v, name, ptr, errp);
>> + if (!visit_type_uint32(v, name, ptr, errp)) {
>> + return;
>> + }
>
> Hi Markus,
>
> Am I missing something here (a preceding patch maybe?) --
> visit_type_uint32 is a void function. A quick look, no other callers
> are checking it for a return value either...
>
> The error value might get set in visit_type_uintN though. Taking a
> hint from other places that handle this sort of case (ex:
> cpu_max_set_sve_max_vq), maybe something like:
>
> Error *err = NULL;
> ...
> visit_type_uint32(v, name, ptr, &err);
> if (err) {
> error_propogate(errp, err);
> return;
> }
> zpci->fid_defined = true;
>
> Instead?
This patch crept into this series by mistake. It indeed depends on
other work I haven't published, yet. Thanks, and sorry for wasting your
time!