qemu-devel
[Top][All Lists]
Advanced

[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: Matthew Rosato
Subject: Re: [PATCH 04/11] s390x/pci: Fix harmless mistake in zpci's property fid's setter
Date: Mon, 27 Apr 2020 10:11:05 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0

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?






reply via email to

[Prev in Thread] Current Thread [Next in Thread]