1
0
Fork 0
alistair23-linux/arch/parisc/mm
Helge Deller f9cd0c8318 parisc: Fix kernel panic in mem_init()
[ Upstream commit bf71bc16e0 ]

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: Helge Deller <deller@gmx.de>
Cc: stable@vger.kernel.org # v5.0+
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-03 08:21:28 +02:00
..
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
fault.c parisc: Mark expected switch fall-throughs in fault.c 2019-07-31 16:16:00 +02:00
fixmap.c parisc: add dynamic ftrace 2019-06-08 12:56:29 +02:00
hugetlbpage.c parisc: Update huge TLB page support to use per-pagetable spinlock 2019-05-03 23:47:41 +02:00
init.c parisc: Fix kernel panic in mem_init() 2020-06-03 08:21:28 +02:00
ioremap.c parisc: Fix vmap memory leak in ioremap()/iounmap() 2019-10-14 21:44:17 +02:00