• Ken'ichi Ohmichi's avatar
    x86, kdump: fix invalid access on i386 sparsemem · e7706fc6
    Ken'ichi Ohmichi authored
    Impact: fix kdump crash on 32-bit sparsemem kernels
    
    Since linux-2.6.27, kdump has failed on i386 sparsemem kernel.
    1st-kernel gets a panic just before switching to 2nd-kernel.
    
    The cause is that a kernel accesses invalid mem_section by
    page_to_pfn(image->swap_page) at machine_kexec().
    image->swap_page is allocated if kexec for hibernation, but
    it is not allocated if kdump. So if kdump, a kernel should
    not access the mem_section corresponding to image->swap_page.
    
    The attached patch fixes this invalid access.
    Signed-off-by: default avatarKen'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
    Cc: kexec-ml <kexec@lists.infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    e7706fc6
machine_kexec_32.c 5.4 KB