Skip to content
  • Baoquan He's avatar
    kexec: export KERNEL_IMAGE_SIZE to vmcoreinfo · 1303a27c
    Baoquan He authored
    
    
    In x86_64, since v2.6.26 the KERNEL_IMAGE_SIZE is changed to 512M, and
    accordingly the MODULES_VADDR is changed to 0xffffffffa0000000.  However,
    in v3.12 Kees Cook introduced kaslr to randomise the location of kernel.
    And the kernel text mapping addr space is enlarged from 512M to 1G.  That
    means now KERNEL_IMAGE_SIZE is variable, its value is 512M when kaslr
    support is not compiled in and 1G when kaslr support is compiled in.
    Accordingly the MODULES_VADDR is changed too to be:
    
        #define MODULES_VADDR    (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
    
    So when kaslr is compiled in and enabled, the kernel text mapping addr
    space and modules vaddr space need be adjusted.  Otherwise makedumpfile
    will collapse since the addr for some symbols is not correct.
    
    Hence KERNEL_IMAGE_SIZE need be exported to vmcoreinfo and got in
    makedumpfile to help calculate MODULES_VADDR.
    
    Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
    Acked-by: default avatarKees Cook <keescook@chromium.org>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1303a27c