On 10/12/15 11:29, Markus Armbruster wrote: > Device realize() methods aren't supposed to call hw_error(), they > should set an error and fail cleanly. Blindly doing that would be > easy enough, but then realize() would fail without undoing its side > effects. Just mark it FIXME for now. > > Cc: "Andreas Färber" <andreas.faer...@web.de> > Cc: qemu-...@nongnu.org > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > hw/pci-host/prep.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c > index da88cb3..f434596 100644 > --- a/hw/pci-host/prep.c > +++ b/hw/pci-host/prep.c > @@ -326,6 +326,7 @@ static void raven_realize(PCIDevice *d, Error **errp) > } > } > if (bios_size < 0 || bios_size > BIOS_SIZE) { > + /* FIXME should error_setg() */ > hw_error("qemu: could not load bios image '%s'\n", s->bios_name); > } > g_free(filename); > @@ -355,8 +356,9 @@ static void raven_class_init(ObjectClass *klass, void > *data) > dc->desc = "PReP Host Bridge - Motorola Raven"; > dc->vmsd = &vmstate_raven; > /* > - * PCI-facing part of the host bridge, not usable without the > - * host-facing part, which can't be device_add'ed, yet. > + * Reason: PCI-facing part of the host bridge, not usable without > + * the host-facing part, which can't be device_add'ed, yet. > + * Reason: realize() method uses hw_error(). > */ > dc->cannot_instantiate_with_device_add_yet = true; > }
Reviewed-by: Thomas Huth <th...@redhat.com>