Commit f5ba7523 authored by Hu Tao's avatar Hu Tao Committed by Andreas Färber
Browse files

ioapic: Use QOM realize for ioapic



Signed-off-by: default avatarHu Tao <hutao@cn.fujitsu.com>
[AF: Tweaked error message]
Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
parent c118d44b
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -57,23 +57,22 @@ static int ioapic_dispatch_post_load(void *opaque, int version_id)
    return 0;
}

static int ioapic_init_common(SysBusDevice *dev)
static void ioapic_common_realize(DeviceState *dev, Error **errp)
{
    IOAPICCommonState *s = IOAPIC_COMMON(dev);
    IOAPICCommonClass *info;
    static int ioapic_no;

    if (ioapic_no >= MAX_IOAPICS) {
        return -1;
        error_setg(errp, "Only %d ioapics allowed", MAX_IOAPICS);
        return;
    }

    info = IOAPIC_COMMON_GET_CLASS(s);
    info->init(s, ioapic_no);

    sysbus_init_mmio(&s->busdev, &s->io_memory);
    sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->io_memory);
    ioapic_no++;

    return 0;
}

static const VMStateDescription vmstate_ioapic_common = {
@@ -95,10 +94,9 @@ static const VMStateDescription vmstate_ioapic_common = {

static void ioapic_common_class_init(ObjectClass *klass, void *data)
{
    SysBusDeviceClass *sc = SYS_BUS_DEVICE_CLASS(klass);
    DeviceClass *dc = DEVICE_CLASS(klass);

    sc->init = ioapic_init_common;
    dc->realize = ioapic_common_realize;
    dc->vmsd = &vmstate_ioapic_common;
    dc->no_user = 1;
}