aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/setup.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2016-03-10 04:32:21 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2016-03-10 08:35:35 -0500
commit8f100bb1ff27873dd71f636da670e503b9ade3c6 (patch)
tree075b6001e1842c435fc30e2c3ca2bad708ba3ca5 /arch/s390/kernel/setup.c
parent7eb792bf7c253cb63202aae72885f5f7abdd8668 (diff)
s390/cpumf: add missing lpp magic initialization
Add the missing lpp magic initialization for cpu 0. Without this all samples on cpu 0 do not have the most significant bit set in the program parameter field, which we use to distinguish between guest and host samples if the pid is also 0. We did initialize the lpp magic in the absolute zero lowcore but forgot that when switching to the allocated lowcore on cpu 0 only. Reported-by: Shu Juan Zhang <zhshuj@cn.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Cc: stable@vger.kernel.org # v4.4+ Fixes: e22cf8ca6f75 ("s390/cpumf: rework program parameter setting to detect guest samples") Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/setup.c')
-rw-r--r--arch/s390/kernel/setup.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index b1fbcc07c871..cc46767e902e 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -327,6 +327,7 @@ static void __init setup_lowcore(void)
327 + PAGE_SIZE - STACK_FRAME_OVERHEAD - sizeof(struct pt_regs); 327 + PAGE_SIZE - STACK_FRAME_OVERHEAD - sizeof(struct pt_regs);
328 lc->current_task = (unsigned long) init_thread_union.thread_info.task; 328 lc->current_task = (unsigned long) init_thread_union.thread_info.task;
329 lc->thread_info = (unsigned long) &init_thread_union; 329 lc->thread_info = (unsigned long) &init_thread_union;
330 lc->lpp = LPP_MAGIC;
330 lc->machine_flags = S390_lowcore.machine_flags; 331 lc->machine_flags = S390_lowcore.machine_flags;
331 lc->stfl_fac_list = S390_lowcore.stfl_fac_list; 332 lc->stfl_fac_list = S390_lowcore.stfl_fac_list;
332 memcpy(lc->stfle_fac_list, S390_lowcore.stfle_fac_list, 333 memcpy(lc->stfle_fac_list, S390_lowcore.stfle_fac_list,