Il 16/09/2014 09:26, arei.gong...@huawei.com ha scritto: > From: ChenLiang <chenlian...@huawei.com> > > 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 <chenlian...@huawei.com> > Signed-off-by: Gonglei <arei.gong...@huawei.com> > --- > hw/i386/kvm/i8254.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c > index 59373aa..472af81 100644 > --- a/hw/i386/kvm/i8254.c > +++ b/hw/i386/kvm/i8254.c > @@ -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; > } >
Looks good. Thanks, will apply. Paolo