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: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
3d4b26494f
commit
a4aecd2819
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user