ioapic: Fix error handling in realize()
Calling error_report() in a function that takes an Error ** argument
is suspicious. ioapic_realize() does that, and then exit()s.
Currently mostly harmless, as the device cannot be hot-plugged.
Fixes: 20fd4b7b6d
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20181017082702.5581-11-armbru@redhat.com>
This commit is contained in:
parent
d319e05d6f
commit
11ab69d6e7
@ -21,7 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qapi/error.h"
|
||||||
#include "monitor/monitor.h"
|
#include "monitor/monitor.h"
|
||||||
#include "hw/hw.h"
|
#include "hw/hw.h"
|
||||||
#include "hw/i386/pc.h"
|
#include "hw/i386/pc.h"
|
||||||
@ -393,9 +393,9 @@ static void ioapic_realize(DeviceState *dev, Error **errp)
|
|||||||
IOAPICCommonState *s = IOAPIC_COMMON(dev);
|
IOAPICCommonState *s = IOAPIC_COMMON(dev);
|
||||||
|
|
||||||
if (s->version != 0x11 && s->version != 0x20) {
|
if (s->version != 0x11 && s->version != 0x20) {
|
||||||
error_report("IOAPIC only supports version 0x11 or 0x20 "
|
error_setg(errp, "IOAPIC only supports version 0x11 or 0x20 "
|
||||||
"(default: 0x%x).", IOAPIC_VER_DEF);
|
"(default: 0x%x).", IOAPIC_VER_DEF);
|
||||||
exit(1);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memory_region_init_io(&s->io_memory, OBJECT(s), &ioapic_io_ops, s,
|
memory_region_init_io(&s->io_memory, OBJECT(s), &ioapic_io_ops, s,
|
||||||
|
Loading…
Reference in New Issue
Block a user