hw/intc/apic: Use ERRP_GUARD() in apic_common_realize()

APICCommonClass::realize() is a DeviceRealize() handler which
take an Error** parameter and can fail. Do not proceed further
on failure.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20231003082728.83496-2-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2023-10-03 09:58:14 +02:00
parent ea08e72eb0
commit 705000674b

View File

@ -257,6 +257,7 @@ static const VMStateDescription vmstate_apic_common;
static void apic_common_realize(DeviceState *dev, Error **errp) static void apic_common_realize(DeviceState *dev, Error **errp)
{ {
ERRP_GUARD();
APICCommonState *s = APIC_COMMON(dev); APICCommonState *s = APIC_COMMON(dev);
APICCommonClass *info; APICCommonClass *info;
static DeviceState *vapic; static DeviceState *vapic;
@ -267,6 +268,9 @@ static void apic_common_realize(DeviceState *dev, Error **errp)
info = APIC_COMMON_GET_CLASS(s); info = APIC_COMMON_GET_CLASS(s);
info->realize(dev, errp); info->realize(dev, errp);
if (*errp) {
return;
}
/* Note: We need at least 1M to map the VAPIC option ROM */ /* Note: We need at least 1M to map the VAPIC option ROM */
if (!vapic && s->vapic_control & VAPIC_ENABLE_MASK && if (!vapic && s->vapic_control & VAPIC_ENABLE_MASK &&