mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 10:13:56 -06:00
qdev: Drop qbus_set_hotplug_handler() parameter @errp
qbus_set_hotplug_handler() is a simple wrapper around object_property_set_link(). object_property_set_link() fails when the property doesn't exist, is not settable, or its .check() method fails. These are all programming errors here, so passing &error_abort to qbus_set_hotplug_handler() is appropriate. Most of its callers do. Exceptions: * pcie_cap_slot_init(), shpc_init(), spapr_phb_realize() pass NULL, i.e. they ignore errors. * spapr_machine_init() passes &error_fatal. * s390_pcihost_realize(), virtio_serial_device_realize(), s390_pcihost_plug() pass the error to their callers. The latter two keep going after the error, which looks wrong. Drop the @errp parameter, and instead pass &error_abort to object_property_set_link(). Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: "Daniel P. Berrangé" <berrange@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20200630090351.1247703-15-armbru@redhat.com>
This commit is contained in:
parent
cd7c866074
commit
9bc6bfdf67
15 changed files with 22 additions and 33 deletions
|
@ -58,7 +58,7 @@ void s390_init_ap(void)
|
|||
bus = qbus_create(TYPE_AP_BUS, dev, TYPE_AP_BUS);
|
||||
|
||||
/* Enable hotplugging */
|
||||
qbus_set_hotplug_handler(bus, OBJECT(dev), &error_abort);
|
||||
qbus_set_hotplug_handler(bus, OBJECT(dev));
|
||||
}
|
||||
|
||||
static void ap_bridge_class_init(ObjectClass *oc, void *data)
|
||||
|
|
|
@ -111,7 +111,7 @@ VirtualCssBus *virtual_css_bus_init(void)
|
|||
cbus = VIRTUAL_CSS_BUS(bus);
|
||||
|
||||
/* Enable hotplugging */
|
||||
qbus_set_hotplug_handler(bus, OBJECT(dev), &error_abort);
|
||||
qbus_set_hotplug_handler(bus, OBJECT(dev));
|
||||
|
||||
css_register_io_adapters(CSS_IO_ADAPTER_VIRTIO, true, false,
|
||||
0, &error_abort);
|
||||
|
|
|
@ -751,19 +751,11 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
|
|||
pci_setup_iommu(b, s390_pci_dma_iommu, s);
|
||||
|
||||
bus = BUS(b);
|
||||
qbus_set_hotplug_handler(bus, OBJECT(dev), &local_err);
|
||||
if (local_err) {
|
||||
error_propagate(errp, local_err);
|
||||
return;
|
||||
}
|
||||
qbus_set_hotplug_handler(bus, OBJECT(dev));
|
||||
phb->bus = b;
|
||||
|
||||
s->bus = S390_PCI_BUS(qbus_create(TYPE_S390_PCI_BUS, dev, NULL));
|
||||
qbus_set_hotplug_handler(BUS(s->bus), OBJECT(dev), &local_err);
|
||||
if (local_err) {
|
||||
error_propagate(errp, local_err);
|
||||
return;
|
||||
}
|
||||
qbus_set_hotplug_handler(BUS(s->bus), OBJECT(dev));
|
||||
|
||||
s->iommu_table = g_hash_table_new_full(g_int64_hash, g_int64_equal,
|
||||
NULL, g_free);
|
||||
|
@ -921,7 +913,7 @@ static void s390_pcihost_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
|
|||
pci_bridge_map_irq(pb, dev->id, s390_pci_map_irq);
|
||||
pci_setup_iommu(&pb->sec_bus, s390_pci_dma_iommu, s);
|
||||
|
||||
qbus_set_hotplug_handler(BUS(&pb->sec_bus), OBJECT(s), errp);
|
||||
qbus_set_hotplug_handler(BUS(&pb->sec_bus), OBJECT(s));
|
||||
|
||||
if (dev->hotplugged) {
|
||||
pci_default_write_config(pdev, PCI_PRIMARY_BUS,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue