s390/boot: fix absolute zero lowcore corruption on boot
authorAlexander Gordeev <agordeev@linux.ibm.com>
Sat, 13 Aug 2022 17:45:21 +0000 (19:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Sep 2022 09:30:07 +0000 (11:30 +0200)
commit4b198c41d736c1c4c4974fd53cd03d632abdb6be
treeb0f0931851554e44af57717d5ae84a02b7b86fca
parenta557ae094207cffcf0d612c7bdbef7513519683a
s390/boot: fix absolute zero lowcore corruption on boot

[ Upstream commit 12dd19c159659ec9050f45dc8a2ff3c3917f4be3 ]

Crash dump always starts on CPU0. In case CPU0 is offline the
prefix page is not installed and the absolute zero lowcore is
used. However, struct lowcore::mcesad is never assigned and
stays zero. That leads to __machine_kdump() -> save_vx_regs()
call silently stores vector registers to the absolute lowcore
at 0x11b0 offset.

Fixes: a62bc0739253 ("s390/kdump: add support for vector extension")
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/s390/kernel/nmi.c
arch/s390/kernel/setup.c