[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 55/84] usb: Eliminate usb_try_create_simple()
From: |
Markus Armbruster |
Subject: |
[PULL 55/84] usb: Eliminate usb_try_create_simple() |
Date: |
Mon, 15 Jun 2020 22:39:39 +0200 |
usb_try_create_simple() is qdev_try_new() and qdev_realize_and_unref()
with more verbose error messages. Of its two users, one ignores
errors, and the other asserts they are impossible.
Make them use qdev_try_new() and qdev_realize_and_unref() directly,
and eliminate usb_try_create_simple
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20200610053247.1583243-30-armbru@redhat.com>
---
hw/usb/bus.c | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index 5c4d31614e..a81aee2051 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -318,35 +318,22 @@ USBDevice *usb_new(const char *name)
return USB_DEVICE(qdev_new(name));
}
+static USBDevice *usb_try_new(const char *name)
+{
+ return USB_DEVICE(qdev_try_new(name));
+}
+
bool usb_realize_and_unref(USBDevice *dev, USBBus *bus, Error **errp)
{
return qdev_realize_and_unref(&dev->qdev, &bus->qbus, errp);
}
-static USBDevice *usb_try_create_simple(USBBus *bus, const char *name,
- Error **errp)
-{
- Error *err = NULL;
- DeviceState *dev;
-
- dev = qdev_try_new(name);
- if (!dev) {
- error_setg(errp, "Failed to create USB device '%s'", name);
- return NULL;
- }
- qdev_realize_and_unref(dev, &bus->qbus, &err);
- if (err) {
- error_propagate_prepend(errp, err,
- "Failed to initialize USB device '%s': ",
- name);
- return NULL;
- }
- return USB_DEVICE(dev);
-}
-
USBDevice *usb_create_simple(USBBus *bus, const char *name)
{
- return usb_try_create_simple(bus, name, &error_abort);
+ USBDevice *dev = usb_new(name);
+
+ usb_realize_and_unref(dev, bus, &error_abort);
+ return dev;
}
static void usb_fill_port(USBPort *port, void *opaque, int index,
@@ -426,6 +413,7 @@ void usb_claim_port(USBDevice *dev, Error **errp)
{
USBBus *bus = usb_bus_from_device(dev);
USBPort *port;
+ USBDevice *hub;
assert(dev->port == NULL);
@@ -443,7 +431,10 @@ void usb_claim_port(USBDevice *dev, Error **errp)
} else {
if (bus->nfree == 1 && strcmp(object_get_typename(OBJECT(dev)),
"usb-hub") != 0) {
/* Create a new hub and chain it on */
- usb_try_create_simple(bus, "usb-hub", NULL);
+ hub = usb_try_new("usb-hub");
+ if (hub) {
+ usb_realize_and_unref(hub, bus, NULL);
+ }
}
if (bus->nfree == 0) {
error_setg(errp, "tried to attach usb device %s to a bus "
--
2.26.2
- [PULL 56/84] qdev: qdev_create(), qdev_try_create() are now unused, drop, (continued)
- [PULL 56/84] qdev: qdev_create(), qdev_try_create() are now unused, drop, Markus Armbruster, 2020/06/15
- [PULL 39/84] pci: New pci_new(), pci_realize_and_unref() etc., Markus Armbruster, 2020/06/15
- [PULL 65/84] sysbus: Drop useless OBJECT() in sysbus_init_child_obj() calls, Markus Armbruster, 2020/06/15
- [PULL 83/84] qdev: qdev_init_nofail() is now unused, drop, Markus Armbruster, 2020/06/15
- [PULL 54/84] usb: usb_create() is now unused, drop, Markus Armbruster, 2020/06/15
- [PULL 66/84] microbit: Tidy up sysbus_init_child_obj() @child argument, Markus Armbruster, 2020/06/15
- [PULL 72/84] qdev: Drop qdev_realize() support for null bus, Markus Armbruster, 2020/06/15
- [PULL 34/84] qdev: Convert to qdev_unrealize() manually, Markus Armbruster, 2020/06/15
- [PULL 43/84] pci: pci_create(), pci_create_multifunction() are now unused, drop, Markus Armbruster, 2020/06/15
- [PULL 13/84] pnv/phb4: Delete unused "pnv-phb4-pec-stack" devices, Markus Armbruster, 2020/06/15
- [PULL 55/84] usb: Eliminate usb_try_create_simple(),
Markus Armbruster <=
- [PULL 63/84] macio: Convert use of qdev_set_parent_bus(), Markus Armbruster, 2020/06/15
- [PULL 84/84] MAINTAINERS: Make section QOM cover hw/core/*bus.c as well, Markus Armbruster, 2020/06/15
- [PULL 74/84] sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 2, Markus Armbruster, 2020/06/15
- [PULL 28/84] Revert "hw/prep: realize the PCI root bus as part of the prep init", Markus Armbruster, 2020/06/15
- [PULL 81/84] qdev: Use qdev_realize() in qdev_device_add(), Markus Armbruster, 2020/06/15
- [PULL 12/84] macio: Delete unused "macio-gpio" devices, Markus Armbruster, 2020/06/15
- [PULL 78/84] microbit: Eliminate two local variables in microbit_init(), Markus Armbruster, 2020/06/15
- [PULL 80/84] qdev: Make qdev_realize() support bus-less devices, Markus Armbruster, 2020/06/15
- [PULL 76/84] sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 4, Markus Armbruster, 2020/06/15
- [PULL 70/84] sysbus: New sysbus_realize(), sysbus_realize_and_unref(), Markus Armbruster, 2020/06/15