Subject: Re: [PATCH] KVM: x86: Use do_div for tsc deadline calculation

From: Randy Dunlap <[email-masked]>
Date: Fri, 30 Sep 2011 10:35:53 -0700

On 09/30/11 04:50, Jan Kiszka wrote:
> Required on i386 hosts.
> 
> Signed-off-by: Jan Kiszka <[email-masked]>

Reported-by: Randy Dunlap <[email-masked]>
Acked-by: Randy Dunlap <[email-masked]>

Thanks.

> ---
>  arch/x86/kvm/lapic.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> index f9385ec..92390dc 100644
> --- a/arch/x86/kvm/lapic.c
> +++ b/arch/x86/kvm/lapic.c
> @@ -740,9 +740,10 @@ static void start_apic_timer(struct kvm_lapic *apic)
>  
>  		now = apic->lapic_timer.timer.base->get_time();
>  		guest_tsc = kvm_x86_ops->read_l1_tsc(vcpu);
> -		if (likely(tscdeadline > guest_tsc))
> -			ns = (tscdeadline - guest_tsc)
> -				* 1000000L / this_tsc_khz;
> +		if (likely(tscdeadline > guest_tsc)) {
> +			ns = (tscdeadline - guest_tsc) * 1000000ULL;
> +			do_div(ns, this_tsc_khz);
> +		}
>  		hrtimer_start(&apic->lapic_timer.timer,
>  			ktime_add_ns(now, ns), HRTIMER_MODE_ABS);
>  

-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***