Skip to content
Snippets Groups Projects
Select Git revision
  • aba33fabcaa38086dcb16bf07a4ddcfac191954c
  • master default
2 results

conf

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Kirill A. Shutemov authored and Ingo Molnar committed
    Eric and Hugh have reported instant reboot due to my recent changes in
    decompression code.
    
    The root cause is that I didn't realize that we need to adjust GOT to be
    able to run C code that early.
    
    The problem is only visible with an older toolchain. Binutils >= 2.24 is
    able to eliminate GOT references by replacing them with RIP-relative
    address loads:
    
      https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=80d873266dec
    
    
    
    We need to adjust GOT two times:
    
     - before calling paging_prepare() using the initial load address
     - before calling C code from the relocated kernel
    
    Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Reported-by: default avatarHugh Dickins <hughd@google.com>
    Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: 194a9749 ("x86/boot/compressed/64: Handle 5-level paging boot if kernel is above 4G")
    Link: http://lkml.kernel.org/r/20180516080131.27913-2-kirill.shutemov@linux.intel.com
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    5c9b0b1c
    History
    Name Last commit Last update
    ..