Kernel commit 2f18d533757da3899f4bedab0b2c051b080079dc lowered the max real address on ppc64 to 53 bits. Make similar changes in makedumpfile (on basis of the underlying kernel version), without which the makedumpfile will fail to create a dumpfile and instead throw a SEGV fault as shown below on kernels >= v4.11: # makedumpfile --split -d 31 -x vmlinux vmcore dumpfile_{1,2,3} 2>&1 The kernel version is not supported. The makedumpfile operation may be incomplete. [ 1196.252094] makedumpfile[2367]: unhandled signal 11 at 00000100f7011ca8 nip 000000001001eecc lr 000000001001f3c0 code 30001 Segmentation fault Signed-off-by: Bhupesh Sharma <bhsharma at redhat.com> --- makedumpfile.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/makedumpfile.h b/makedumpfile.h index 7d81bbcf2234..142753d84e8d 100644 --- a/makedumpfile.h +++ b/makedumpfile.h @@ -684,8 +684,9 @@ unsigned long get_kvbase_arm64(void); #define PMD_MASKED_BITS_64K_4_6 0xc0000000000000ffUL #define PTE_RPN_MASK_DEFAULT 0xffffffffffffffffUL -#define PTE_RPN_SIZE_L4_4_6 (info->page_size == 65536 ? 41 : 45) -#define PTE_RPN_MASK_L4_4_6 (((1UL << PTE_RPN_SIZE_L4_4_6) - 1) << info->page_shift) +#define PAGE_PA_MAX_L4_4_6 (info->kernel_version >= KERNEL_VERSION(4,11,0) ? 53 : 57) +#define PTE_RPN_MASK_L4_4_6 \ + (((1UL << PAGE_PA_MAX_L4_4_6) - 1) & ~((1UL << info->page_shift) - 1)) #define PTE_RPN_SHIFT_L4_4_6 info->page_shift #define PGD_MASKED_BITS_4_7 0xc0000000000000ffUL -- 2.7.4