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 bf8b4ae7ff2..e49e9e0c69f 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c @@ -55,6 +55,7 @@ static void __init reset_tod_clock(void)  		disabled_wait(0);  	sched_clock_base_cc = TOD_UNIX_EPOCH; +	S390_lowcore.last_update_clock = sched_clock_base_cc;  }  #ifdef CONFIG_SHARED_KERNEL @@ -167,6 +168,14 @@ static noinline __init void create_kernel_nss(void)  		return;  	} +	/* re-initialize cputime accounting. */ +	sched_clock_base_cc = get_clock(); +	S390_lowcore.last_update_clock = sched_clock_base_cc; +	S390_lowcore.last_update_timer = 0x7fffffffffffffffULL; +	S390_lowcore.user_timer = 0; +	S390_lowcore.system_timer = 0; +	asm volatile("SPT 0(%0)" : : "a" (&S390_lowcore.last_update_timer)); +  	/* re-setup boot command line with new ipl vm parms */  	ipl_update_parameters();  	setup_boot_command_line();  |