KVM: use proper hrtimer function to retrieve expiration time
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.
Signed-off-by Marcelo Tosatti <[email protected]>
arch/x86/kvm/i8254.c +1 -1
@@ -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
@@ -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 );
Avi Kivity
AppliedQuoted 6 lines · Marcelo Tosatti
hrtimer->basecan be temporarily NULL due to racinghrtimer_start. See switch_hrtimer_base/lock_hrtimer_base.Use
hrtimer_get_remainingwhich is robust against it.
Thanks, applied and queued for 2.6.32.
Signature · 1 line
error compiling committee.c: too many arguments to function