• Andy Honig's avatar
    kallsyms: fix absolute addresses for kASLR · 0f55159d
    Andy Honig authored
    Currently symbols that are absolute addresses are incorrectly displayed
    in /proc/kallsyms if the kernel is loaded with kASLR.
    
    The problem was that the scripts/kallsyms.c file which generates the
    array of symbol names and addresses uses an relocatable value for all
    symbols, even absolute symbols.  This patch fixes that.
    
    Several kallsyms output in different boot states for comparison:
    
      $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.nokaslr
      0000000000000000 D __per_cpu_start
      0000000000014280 D __per_cpu_end
      ffffffff810001c8 T _stext
      $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.kaslr1
      000000001f200000 D __per_cpu_start
      000000001f214280 D __per_cpu_end
      ffffffffa02001c8 T _stext
      $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.kaslr2
      000000000d400000 D __per_cpu_start
      000000000d414280 D __per_cpu_end
      ffffffff8e4001c8 T _stext
      $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.kaslr-fixed
      0000000000000000 D __per_cpu_start
      0000000000014280 D __per_cpu_end
      ffffffffadc001c8 T _stext
    Signed-off-by: default avatarAndy Honig <ahonig@google.com>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Cc: Michal Marek <mmarek@suse.cz>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0f55159d
kallsyms.c 15.7 KB