• HATAYAMA Daisuke's avatar
    vmcore: allocate buffer for ELF headers on page-size alignment · f2bdacdd
    HATAYAMA Daisuke authored
    Allocate ELF headers on page-size boundary using __get_free_pages()
    instead of kmalloc().
    
    Later patch will merge PT_NOTE entries into a single unique one and
    decrease the buffer size actually used.  Keep original buffer size in
    variable elfcorebuf_sz_orig to kfree the buffer later and actually used
    buffer size with rounded up to page-size boundary in variable
    elfcorebuf_sz separately.
    
    The size of part of the ELF buffer exported from /proc/vmcore is
    elfcorebuf_sz.
    
    The merged, removed PT_NOTE entries, i.e.  the range [elfcorebuf_sz,
    elfcorebuf_sz_orig], is filled with 0.
    
    Use size of the ELF headers as an initial offset value in
    set_vmcore_list_offsets_elf{64,32} and
    process_ptload_program_headers_elf{64,32} in order to indicate that the
    offset includes the holes towards the page boundary.
    
    As a result, both set_vmcore_list_offsets_elf{64,32} have the same
    definition.  Merge them as set_vmcore_list_offsets.
    
    [akpm@linux-foundation.org: add free_elfcorebuf(), cleanups]
    Signed-off-by: default avatarHATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>
    Cc: Lisa Mitchell <lisa.mitchell@hp.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f2bdacdd
vmcore.c 16.2 KB