• Helge Deller's avatar
    parisc: Fix kernel panic in mem_init() · bf71bc16
    Helge Deller authored
    The Debian kernel v5.6 triggers this kernel panic:
    
     Kernel panic - not syncing: Bad Address (null pointer deref?)
     Bad Address (null pointer deref?): Code=26 (Data memory access rights trap) at addr 0000000000000000
     CPU: 0 PID: 0 Comm: swapper Not tainted 5.6.0-2-parisc64 #1 Debian 5.6.14-1
      IAOQ[0]: mem_init+0xb0/0x150
      IAOQ[1]: mem_init+0xb4/0x150
      RP(r2): start_kernel+0x6c8/0x1190
     Backtrace:
      [<0000000040101ab4>] start_kernel+0x6c8/0x1190
      [<0000000040108574>] start_parisc+0x158/0x1b8
    
    on a HP-PARISC rp3440 machine with this memory layout:
     Memory Ranges:
      0) Start 0x0000000000000000 End 0x000000003fffffff Size   1024 MB
      1) Start 0x0000004040000000 End 0x00000040ffdfffff Size   3070 MB
    
    Fix the crash by avoiding virt_to_page() and similar functions in
    mem_init() until the memory zones have been fully set up.
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org # v5.0+
    bf71bc16
init.c 23.5 KB