summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/early.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2016-05-31 10:16:24 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2016-06-13 15:58:20 +0200
commit4027789192d149678262ad606b2d7e2a61bed0f2 (patch)
treecb58f29b1ddf8e1f06eee12c67fa2a846ee0e7ad /arch/s390/kernel/early.c
parents390/time: move PTFF definitions (diff)
downloadlinux-4027789192d149678262ad606b2d7e2a61bed0f2.tar.xz
linux-4027789192d149678262ad606b2d7e2a61bed0f2.zip
s390/time: LPAR offset handling
It is possible to specify a user offset for the TOD clock, e.g. +2 hours. The TOD clock will carry this offset even if the clock is synchronized with STP. This makes the time stamps acquired with get_sync_clock() useless as another LPAR migth use a different TOD offset. Use the PTFF instrution to get the TOD epoch difference and subtract it from the TOD clock value to get a physical timestamp. As the epoch difference contains the sync check delta as well the LPAR offset value to the physical clock needs to be refreshed after each clock synchronization. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/early.c')
-rw-r--r--arch/s390/kernel/early.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index 4067dbe390ac..717b03aa16b5 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -467,6 +467,7 @@ void __init startup_init(void)
ipl_save_parameters();
rescue_initrd();
clear_bss_section();
+ ptff_init();
init_kernel_storage_key();
lockdep_off();
setup_lowcore_early();