diff options
Diffstat (limited to 'arch/s390/kernel/early.c')
| -rw-r--r-- | arch/s390/kernel/early.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index bf8b4ae7ff2d..e49e9e0c69fd 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
| @@ -55,6 +55,7 @@ static void __init reset_tod_clock(void) | |||
| 55 | disabled_wait(0); | 55 | disabled_wait(0); |
| 56 | 56 | ||
| 57 | sched_clock_base_cc = TOD_UNIX_EPOCH; | 57 | sched_clock_base_cc = TOD_UNIX_EPOCH; |
| 58 | S390_lowcore.last_update_clock = sched_clock_base_cc; | ||
| 58 | } | 59 | } |
| 59 | 60 | ||
| 60 | #ifdef CONFIG_SHARED_KERNEL | 61 | #ifdef CONFIG_SHARED_KERNEL |
| @@ -167,6 +168,14 @@ static noinline __init void create_kernel_nss(void) | |||
| 167 | return; | 168 | return; |
| 168 | } | 169 | } |
| 169 | 170 | ||
| 171 | /* re-initialize cputime accounting. */ | ||
| 172 | sched_clock_base_cc = get_clock(); | ||
| 173 | S390_lowcore.last_update_clock = sched_clock_base_cc; | ||
| 174 | S390_lowcore.last_update_timer = 0x7fffffffffffffffULL; | ||
| 175 | S390_lowcore.user_timer = 0; | ||
| 176 | S390_lowcore.system_timer = 0; | ||
| 177 | asm volatile("SPT 0(%0)" : : "a" (&S390_lowcore.last_update_timer)); | ||
| 178 | |||
| 170 | /* re-setup boot command line with new ipl vm parms */ | 179 | /* re-setup boot command line with new ipl vm parms */ |
| 171 | ipl_update_parameters(); | 180 | ipl_update_parameters(); |
| 172 | setup_boot_command_line(); | 181 | setup_boot_command_line(); |
