diff options
-rw-r--r-- | xen/arch/x86/hvm/vpt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c index 2879a66d55..16f886647d 100644 --- a/xen/arch/x86/hvm/vpt.c +++ b/xen/arch/x86/hvm/vpt.c @@ -167,6 +167,7 @@ static void pt_timer_fn(void *data) pt_lock(pt); pt->pending_intr_nr++; + pt->do_not_freeze = 0; if ( !pt->one_shot ) { @@ -253,7 +254,6 @@ void pt_intr_post(struct vcpu *v, struct hvm_intack intack) return; } - pt->do_not_freeze = 0; pt->irq_issued = 0; if ( pt->one_shot ) @@ -264,7 +264,8 @@ void pt_intr_post(struct vcpu *v, struct hvm_intack intack) } else { - if ( mode_is(v->domain, one_missed_tick_pending) ) + if ( mode_is(v->domain, one_missed_tick_pending) || + mode_is(v->domain, no_missed_ticks_pending) ) { pt->last_plt_gtime = hvm_get_guest_time(v); pt->pending_intr_nr = 0; /* 'collapse' all missed ticks */ |