diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 43494a014d5b..55956c96558c 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -336,7 +336,7 @@ static inline void __load_psw(psw_t psw) * Set PSW mask to specified value, while leaving the * PSW addr pointing to the next instruction. */ -static inline void __load_psw_mask(unsigned long mask) +static __no_sanitize_address_or_inline void __load_psw_mask(unsigned long mask) { unsigned long addr; psw_t psw; diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 032d98bfc60a..c98059faee46 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -804,6 +804,8 @@ static void smp_init_secondary(void) { int cpu = smp_processor_id(); + S390_lowcore.last_update_clock = get_tod_clock(); + restore_access_regs(S390_lowcore.access_regs_save_area); cpu_init(); preempt_disable(); init_cpu_timer(); @@ -823,14 +825,12 @@ static void smp_init_secondary(void) /* * Activate a secondary processor. */ -static void smp_start_secondary(void *cpuvoid) +static void __no_sanitize_address smp_start_secondary(void *cpuvoid) { - S390_lowcore.last_update_clock = get_tod_clock(); S390_lowcore.restart_stack = (unsigned long) restart_stack; S390_lowcore.restart_fn = (unsigned long) do_restart; S390_lowcore.restart_data = 0; S390_lowcore.restart_source = -1UL; - restore_access_regs(S390_lowcore.access_regs_save_area); __ctl_load(S390_lowcore.cregs_save_area, 0, 15); __load_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT); CALL_ON_STACK(smp_init_secondary, S390_lowcore.kernel_stack, 0);