KVM: Fix build error due to 64-bit division in nsec_to_cycles()
authorAvi Kivity <avi@redhat.com>
Thu, 26 Aug 2010 10:38:03 +0000 (13:38 +0300)
committerAvi Kivity <avi@redhat.com>
Sun, 24 Oct 2010 08:51:43 +0000 (10:51 +0200)
Use do_div() instead.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/x86.c

index bc96ac9ed912bb1926b199006f858ed7ed27b74d..bdba1d09a97e52ac680c9983784a73753ee0f923 100644 (file)
@@ -56,6 +56,7 @@
 #include <asm/i387.h>
 #include <asm/xcr.h>
 #include <asm/pvclock.h>
+#include <asm/div64.h>
 
 #define MAX_IO_MSRS 256
 #define CR0_RESERVED_BITS                                              \
@@ -917,11 +918,15 @@ static inline int kvm_tsc_changes_freq(void)
 
 static inline u64 nsec_to_cycles(u64 nsec)
 {
+       u64 ret;
+
        WARN_ON(preemptible());
        if (kvm_tsc_changes_freq())
                printk_once(KERN_WARNING
                 "kvm: unreliable cycle conversion on adjustable rate TSC\n");
-       return (nsec * __get_cpu_var(cpu_tsc_khz)) / USEC_PER_SEC;
+       ret = nsec * __get_cpu_var(cpu_tsc_khz);
+       do_div(ret, USEC_PER_SEC);
+       return ret;
 }
 
 void kvm_write_tsc(struct kvm_vcpu *vcpu, u64 data)