diff options
author | Alexander Gordeev <agordeev@linux.ibm.com> | 2022-01-29 10:38:56 +0300 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2022-02-10 00:56:03 +0300 |
commit | dc306186a130c6d9feb0aabc1c71b8ed1674a3bf (patch) | |
tree | 463c9754d0b148733a1121a6e0de195fbeb6f8dd /arch/s390/kernel/crash_dump.c | |
parent | ba2d394c60ad4b5d70cd449b9e6f6380c2e36a50 (diff) | |
download | linux-dc306186a130c6d9feb0aabc1c71b8ed1674a3bf.tar.xz |
s390/dump: fix old lowcore virtual vs physical address confusion
Virtual addresses of vmcore_info and os_info members are
wrongly passed to copy_oldmem_kernel(), while the function
expects physical address of the source. Instead, __pa()
macro should have been applied.
Yet, use of __pa() macro could be somehow confusing, since
copy_oldmem_kernel() may treat the source as an offset, not
as a direct physical address (that depens from the oldmem
availability and location).
Fix the virtual vs physical address confusion and make the
way the old lowcore is read consistent across all sources.
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>
Diffstat (limited to 'arch/s390/kernel/crash_dump.c')
-rw-r--r-- | arch/s390/kernel/crash_dump.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c index af8202121642..a62bee83a88b 100644 --- a/arch/s390/kernel/crash_dump.c +++ b/arch/s390/kernel/crash_dump.c @@ -432,7 +432,7 @@ static void *get_vmcoreinfo_old(unsigned long *size) Elf64_Nhdr note; void *addr; - if (copy_oldmem_kernel(&addr, &S390_lowcore.vmcore_info, sizeof(addr))) + if (copy_oldmem_kernel(&addr, (void *)__LC_VMCORE_INFO, sizeof(addr))) return NULL; memset(nt_name, 0, sizeof(nt_name)); if (copy_oldmem_kernel(¬e, addr, sizeof(note))) |