pit: fix pit interrupt can't inject into vm after migration
kvm_pit is running in kmod. kvm_pit is going to inject interrupt to vm before cpu_synchronize_all_post_init at dest side. vcpu will lose the pit interrupt, but ack_irq(in kmod) has been 0. ack_irq become 1 after vcpu responds pit interrupt. pit interruptcan inject to vm when ack_irq is 1. By the way, kvm_pit_vm_state_change has save and load state of pit, so pre_save and post_load is unnecessary. Signed-off-by: ChenLiang <chenliang88@huawei.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
cc35a44cf7
commit
be894f51b6
@ -239,6 +239,7 @@ static void kvm_pit_vm_state_change(void *opaque, int running,
|
||||
|
||||
if (running) {
|
||||
kvm_pit_update_clock_offset(s);
|
||||
kvm_pit_put(PIT_COMMON(s));
|
||||
s->vm_stopped = false;
|
||||
} else {
|
||||
kvm_pit_update_clock_offset(s);
|
||||
@ -314,8 +315,6 @@ static void kvm_pit_class_init(ObjectClass *klass, void *data)
|
||||
dc->realize = kvm_pit_realizefn;
|
||||
k->set_channel_gate = kvm_pit_set_gate;
|
||||
k->get_channel_info = kvm_pit_get_channel_info;
|
||||
k->pre_save = kvm_pit_get;
|
||||
k->post_load = kvm_pit_put;
|
||||
dc->reset = kvm_pit_reset;
|
||||
dc->props = kvm_pit_properties;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user