diff options
| -rw-r--r-- | arch/x86/kernel/tsc.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index 57e5ce126d5a..8764232bf0f1 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c | |||
| @@ -234,9 +234,6 @@ static inline unsigned long long cycles_2_ns(unsigned long long cyc) | |||
| 234 | return ns; | 234 | return ns; |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | /* XXX surely we already have this someplace in the kernel?! */ | ||
| 238 | #define DIV_ROUND(n, d) (((n) + ((d) / 2)) / (d)) | ||
| 239 | |||
| 240 | static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu) | 237 | static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu) |
| 241 | { | 238 | { |
| 242 | unsigned long long tsc_now, ns_now; | 239 | unsigned long long tsc_now, ns_now; |
| @@ -259,7 +256,9 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu) | |||
| 259 | * time function is continuous; see the comment near struct | 256 | * time function is continuous; see the comment near struct |
| 260 | * cyc2ns_data. | 257 | * cyc2ns_data. |
| 261 | */ | 258 | */ |
| 262 | data->cyc2ns_mul = DIV_ROUND(NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR, cpu_khz); | 259 | data->cyc2ns_mul = |
| 260 | DIV_ROUND_CLOSEST(NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR, | ||
| 261 | cpu_khz); | ||
| 263 | data->cyc2ns_shift = CYC2NS_SCALE_FACTOR; | 262 | data->cyc2ns_shift = CYC2NS_SCALE_FACTOR; |
| 264 | data->cyc2ns_offset = ns_now - | 263 | data->cyc2ns_offset = ns_now - |
| 265 | mul_u64_u32_shr(tsc_now, data->cyc2ns_mul, CYC2NS_SCALE_FACTOR); | 264 | mul_u64_u32_shr(tsc_now, data->cyc2ns_mul, CYC2NS_SCALE_FACTOR); |
