Commit a4aecd28 authored by Jan Kiszka's avatar Jan Kiszka Committed by Marcelo Tosatti
Browse files

apic: Fix legacy vmstate loading for KVM



Also in case of loading pre-vmstate machines, we also need to open-code
the reading of the timer expires value and instead call the post_load
callback to apply it (or not). This fixes loading of legacy states into
the KVM APIC.

Reported-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 3d4b2649
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ static void apic_reset_common(DeviceState *d)
static int apic_load_old(QEMUFile *f, void *opaque, int version_id)
{
    APICCommonState *s = opaque;
    APICCommonClass *info = APIC_COMMON_GET_CLASS(s);
    int i;

    if (version_id > 2) {
@@ -220,7 +221,11 @@ static int apic_load_old(QEMUFile *f, void *opaque, int version_id)
    s->next_time = qemu_get_be64(f);

    if (version_id >= 2) {
        qemu_get_timer(f, s->timer);
        s->timer_expiry = qemu_get_be64(f);
    }

    if (info->post_load) {
        info->post_load(s);
    }
    return 0;
}