aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xen/arch/x86/hvm/vpt.c5
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 */