diff options
Diffstat (limited to 'arch/s390/kernel/time.c')
| -rw-r--r-- | arch/s390/kernel/time.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index b94e9e3b694a..eccefbbff887 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
| @@ -59,7 +59,7 @@ | |||
| 59 | 59 | ||
| 60 | static ext_int_info_t ext_int_info_cc; | 60 | static ext_int_info_t ext_int_info_cc; |
| 61 | static ext_int_info_t ext_int_etr_cc; | 61 | static ext_int_info_t ext_int_etr_cc; |
| 62 | static u64 jiffies_timer_cc; | 62 | static u64 sched_clock_base_cc; |
| 63 | 63 | ||
| 64 | static DEFINE_PER_CPU(struct clock_event_device, comparators); | 64 | static DEFINE_PER_CPU(struct clock_event_device, comparators); |
| 65 | 65 | ||
| @@ -68,7 +68,7 @@ static DEFINE_PER_CPU(struct clock_event_device, comparators); | |||
| 68 | */ | 68 | */ |
| 69 | unsigned long long sched_clock(void) | 69 | unsigned long long sched_clock(void) |
| 70 | { | 70 | { |
| 71 | return ((get_clock_xt() - jiffies_timer_cc) * 125) >> 9; | 71 | return ((get_clock_xt() - sched_clock_base_cc) * 125) >> 9; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | /* | 74 | /* |
| @@ -229,13 +229,10 @@ static struct clocksource clocksource_tod = { | |||
| 229 | */ | 229 | */ |
| 230 | void __init time_init(void) | 230 | void __init time_init(void) |
| 231 | { | 231 | { |
| 232 | u64 init_timer_cc; | 232 | sched_clock_base_cc = reset_tod_clock(); |
| 233 | |||
| 234 | init_timer_cc = reset_tod_clock(); | ||
| 235 | jiffies_timer_cc = init_timer_cc - jiffies_64 * CLK_TICKS_PER_JIFFY; | ||
| 236 | 233 | ||
| 237 | /* set xtime */ | 234 | /* set xtime */ |
| 238 | tod_to_timeval(init_timer_cc - TOD_UNIX_EPOCH, &xtime); | 235 | tod_to_timeval(sched_clock_base_cc - TOD_UNIX_EPOCH, &xtime); |
| 239 | set_normalized_timespec(&wall_to_monotonic, | 236 | set_normalized_timespec(&wall_to_monotonic, |
| 240 | -xtime.tv_sec, -xtime.tv_nsec); | 237 | -xtime.tv_sec, -xtime.tv_nsec); |
| 241 | 238 | ||
| @@ -289,7 +286,7 @@ static unsigned long long adjust_time(unsigned long long old, | |||
| 289 | delta = -delta; | 286 | delta = -delta; |
| 290 | adjust.offset = -ticks * (1000000 / HZ); | 287 | adjust.offset = -ticks * (1000000 / HZ); |
| 291 | } | 288 | } |
| 292 | jiffies_timer_cc += delta; | 289 | sched_clock_base_cc += delta; |
| 293 | if (adjust.offset != 0) { | 290 | if (adjust.offset != 0) { |
| 294 | printk(KERN_NOTICE "etr: time adjusted by %li micro-seconds\n", | 291 | printk(KERN_NOTICE "etr: time adjusted by %li micro-seconds\n", |
| 295 | adjust.offset); | 292 | adjust.offset); |
