Skip to contentSkip to conversation

KVM: use proper hrtimer function to retrieve expiration time

PATCH Applied Marcelo Tosatti 2 participants 2 messages Oct 8, 2009

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

hrtimer->base can be temporarily NULL due to racing hrtimer_start. See switch_hrtimer_base/lock_hrtimer_base.

Use hrtimer_get_remaining which is robust against it.

arch/x86/kvm/i8254.c +1 -1
index b857ca3..fab7440 100644
@@ -116,7 +116,7 @@ static s64 __kpit_elapsed(struct kvm *kvm)
 	 * itself with the initial count and continues counting
 	 * from there.
 	 */
-	remaining = hrtimer_expires_remaining(&ps->pit_timer.timer);
+	remaining = hrtimer_get_remaining(&ps->pit_timer.timer);
 	elapsed = ps->pit_timer.period - ktime_to_ns(remaining);
 	elapsed = mod_64(elapsed, ps->pit_timer.period);
 
arch/x86/kvm/lapic.c +1 -1
index 9c8f901..94aa315 100644
@@ -515,7 +515,7 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic)
 	if (apic_get_reg(apic, APIC_TMICT) == 0)
 		return 0;
 
-	remaining = hrtimer_expires_remaining(&apic->lapic_timer.timer);
+	remaining = hrtimer_get_remaining(&apic->lapic_timer.timer);
 	if (ktime_to_ns(remaining) < 0)
 		remaining = ktime_set(0, 0);
 
Applied
#1 lore raw
Quoted 6 lines · Marcelo Tosatti

hrtimer->base can be temporarily NULL due to racing hrtimer_start. See switch_hrtimer_base/lock_hrtimer_base.

Use hrtimer_get_remaining which is robust against it.

Thanks, applied and queued for 2.6.32.

Signature · 1 line
error compiling committee.c: too many arguments to function