Skip to content
  • Dave Hansen's avatar
    x86/mm/init: Pass unconverted symbol addresses to free_init_pages() · 22ddf852
    Dave Hansen authored
    commit 9f515cdb
    
     upstream.
    
    The x86 code has several places where it frees parts of kernel image:
    
     1. Unused SMP alternative
     2. __init code
     3. The hole between text and rodata
     4. The hole between rodata and data
    
    We call free_init_pages() to do this.  Strangely, we convert the symbol
    addresses to kernel direct map addresses in some cases (#3, #4) but not
    others (#1, #2).
    
    The virt_to_page() and the other code in free_reserved_area() now works
    fine for for symbol addresses on x86, so don't bother converting the
    addresses to direct map addresses before freeing them.
    
    Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: keescook@google.com
    Cc: aarcange@redhat.com
    Cc: jgross@suse.com
    Cc: jpoimboe@redhat.com
    Cc: gregkh@linuxfoundation.org
    Cc: peterz@infradead.org
    Cc: hughd@google.com
    Cc: torvalds@linux-foundation.org
    Cc: bp@alien8.de
    Cc: luto@kernel.org
    Cc: ak@linux.intel.com
    Cc: Kees Cook <keescook@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Link: https://lkml.kernel.org/r/20180802225828.89B2D0E2@viggo.jf.intel.com
    
    
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    22ddf852