• Haren Myneni's avatar
    [PATCH] kexec: fix in free initrd when overlapped with crashkernel region · 9c15e852
    Haren Myneni authored
    It is possible that the reserved crashkernel region can be overlapped with
    initrd since the bootloader sets the initrd location.  When the initrd
    region is freed, the second kernel memory will not be contiguous.  The
    Kexec_load can cause an oops since there is no contiguous memory to write
    the second kernel or this memory could be used in the first kernel itself
    and may not be part of the dump.  For example, on powerpc, the initrd is
    located at 36MB and the crashkernel starts at 32MB.  The kexec_load caused
    panic since writing into non-allocated memory (after 36MB).  We could see
    the similar issue even on other archs.
    
    One possibility is to move the initrd outside of crashkernel region.  But,
    the initrd region will be freed anyway before the system is up.  This patch
    fixes this issue and frees only regions that are not part of crashkernel
    memory in case overlaps.
    Signed-off-by: default avatarHaren Myneni <haren@us.ibm.com>
    Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Vivek Goyal <vgoyal@in.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    9c15e852
initramfs.c 10.7 KB