zdump/dfi: Fix vm_info_get() check for non-VR kernel

Since the following kernel commit:
"32db401965f1 s390/mm: Pin identity mapping base to zero"
we can have zero identity_base value in os_info. This makes zgetdump
check for non-VR kernel in vm_info_get() incorrect what leads to missing
data (e.g. UTS kernel version) in 'zgetdump -i' output.
Check for zero kaslr_offset value instead (like crash and makedumpfile
do) in order to identify non-VR kernel.

Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Mikhail Zaslonko
2024-09-16 18:24:01 +02:00
committed by Jan Höppner
parent 7fb3ee4478
commit d8f504f271

View File

@@ -82,11 +82,11 @@ static struct vm_info *vm_info_get(void)
util_log_print(UTIL_LOG_TRACE, "DFI read vm_info\n");
vm_info.identity_base = l.os_info->entry[OS_INFO_IDENTITY_BASE].val;
if (vm_info.identity_base == 0)
return NULL;
vm_info.kaslr_offset = l.os_info->entry[OS_INFO_KASLR_OFFSET].val;
if (vm_info.kaslr_offset == 0)
return NULL;
vm_info.kaslr_offset_phys = l.os_info->entry[OS_INFO_KASLR_OFF_PHYS].val;
vm_info.identity_base = l.os_info->entry[OS_INFO_IDENTITY_BASE].val;
vm_info.amode31_start = l.os_info->entry[OS_INFO_AMODE31_START].val;
vm_info.amode31_end = l.os_info->entry[OS_INFO_AMODE31_END].val;