Upcoming changes to the generic vDSO library will mean that the vDSO datapage will not yet be usable during time_early_init().
Move the initialization to time_init() which is called later. This is valid as the value of tod_clock_base.tod only changes in stop_machine() context and both time_init_early() and time_init() are called before interrupts are enabled. Signed-off-by: Thomas Weißschuh <[email protected]> Acked-by: Heiko Carstens <[email protected]> Tested-by: Andreas Larsson <[email protected]> Reviewed-by: Andreas Larsson <[email protected]> --- arch/s390/kernel/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 63517b85f4c930b799235c381d9d6b263fff5431..6b948b9e61fe674bbc842a0143dd35a26b91a860 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c @@ -78,8 +78,6 @@ void __init time_early_init(void) struct ptff_qto qto; struct ptff_qui qui; - vdso_k_time_data->arch_data.tod_delta = tod_clock_base.tod; - if (!test_facility(28)) return; @@ -248,6 +246,8 @@ struct clocksource * __init clocksource_default_clock(void) */ void __init time_init(void) { + vdso_k_time_data->arch_data.tod_delta = tod_clock_base.tod; + /* Reset time synchronization interfaces. */ stp_reset(); -- 2.51.0

