summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/setup.c
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@linux.ibm.com>2022-03-30 19:50:16 +0200
committerHeiko Carstens <hca@linux.ibm.com>2022-04-25 13:54:13 +0200
commit7714e16f791d948c8bb58aa23bf8ef60b9bba646 (patch)
treed4bdaa4fd962e599c2480b0207d2b72857dee1b0 /arch/s390/kernel/setup.c
parent28d3417a946762bed46815e59627bbd749347906 (diff)
downloadlinux-7714e16f791d948c8bb58aa23bf8ef60b9bba646.tar.gz
linux-7714e16f791d948c8bb58aa23bf8ef60b9bba646.tar.bz2
linux-7714e16f791d948c8bb58aa23bf8ef60b9bba646.zip
s390/smp: sort out physical vs virtual CPU0 lowcore pointer
SPX instruction called from set_prefix() expects physical address of the lowcore to be installed, but instead the virtual address is passed. Note: this does not fix a bug currently, since virtual and physical addresses are identical. Reviewed-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel/setup.c')
-rw-r--r--arch/s390/kernel/setup.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index d860ac300919..8d91eccc0963 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -494,7 +494,7 @@ static void __init setup_lowcore_dat_off(void)
lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW);
lc->preempt_count = PREEMPT_DISABLED;
- set_prefix((u32)(unsigned long) lc);
+ set_prefix(__pa(lc));
lowcore_ptr[0] = lc;
}