• Hari Bathini's avatar
    powerpc/fadump: fix PT_LOAD segment for boot memory area · 15eb77f8
    Hari Bathini authored
    Boot memory area is setup as separate PT_LOAD segment in the vmcore
    as it is moved by f/w, on crash, to a destination address provided by
    the kernel. Having separate PT_LOAD segment helps in handling the
    different physical address and offset for boot memory area in the
    vmcore.
    
    Commit ced1bf52 ("powerpc/fadump: merge adjacent memory ranges to
    reduce PT_LOAD segements") inadvertly broke this pre-condition for
    cases where some of the first kernel memory is available adjacent to
    boot memory area. This scenario is rare but possible when memory for
    fadump could not be reserved adjacent to boot memory area owing to
    memory hole or such. Reading memory from a vmcore exported in such
    scenario provides incorrect data.  Fix it by ensuring no other region
    is folded into boot memory area.
    
    Fixes: ced1bf52 ("powerpc/fadump: merge adjacent memory ranges to reduce PT_LOAD segements")
    Signed-off-by: default avatarHari Bathini <hbathini@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220406093839.206608-2-hbathini@linux.ibm.com
    15eb77f8
fadump.c 43.5 KB