qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH v1 09/25] qdev: gpio: Ignore unconnectable GPIOs


From: Peter Crosthwaite
Subject: [Qemu-devel] [RFC PATCH v1 09/25] qdev: gpio: Ignore unconnectable GPIOs
Date: Thu, 10 Sep 2015 22:33:19 -0700

Nop rather than assert if a GPIO connection cannot be made. This
allows for continuation of machine init after an error which allows
removal of error detection boilerplate and detection of subsequent
errors.

The actual error (i.e. a GPIO endpoint was not inited) will have
already been raised by other APIs.

Ideally this API should raise an error in its own right. Add a FIXME.

Signed-off-by: Peter Crosthwaite <address@hidden>
---

 hw/core/qdev.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index b2f404a..52140ba 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -467,7 +467,11 @@ qemu_irq qdev_get_gpio_in_named(DeviceState *dev, const 
char *name, int n)
 {
     NamedGPIOList *gpio_list = qdev_get_named_gpio_list(dev, name);
 
-    assert(n >= 0 && n < gpio_list->num_in);
+    assert(n >= 0);
+    if (n >= gpio_list->num_in) {
+        /* FIXME: add error ** to this API */
+        return NULL;
+    }
     return gpio_list->in[n];
 }
 
@@ -491,7 +495,8 @@ void qdev_connect_gpio_out_named(DeviceState *dev, const 
char *name, int n,
                                                 "/unattached"),
                                   "non-qdev-gpio[*]", OBJECT(pin), NULL);
     }
-    object_property_set_link(OBJECT(dev), OBJECT(pin), propname, &error_abort);
+    /* FIXME: add error ** to this API */
+    object_property_set_link(OBJECT(dev), OBJECT(pin), propname, NULL);
     g_free(propname);
 }
 
-- 
1.9.1




reply via email to

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