Linux-parisc archive on
 help / color / Atom feed
* [PATCH] parisc: Fix kernel panic in mem_init()
@ 2020-05-28 20:29 Helge Deller
  0 siblings, 0 replies; only message in thread
From: Helge Deller @ 2020-05-28 20:29 UTC (permalink / raw)
  To: linux-parisc, James Bottomley, John David Anglin

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

the Debian kernel v5.6 triggers a kernel panic:

 Kernel panic - not syncing: Bad Address (null pointer deref?)
  [<0000000040101ab4>] start_kernel+0x6c8/0x1190
  [<0000000040108574>] start_parisc+0x158/0x1b8

 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
 Hardware name: 9000/800/rp3440

  IAOQ[0]: mem_init+0xb0/0x150
  IAOQ[1]: mem_init+0xb4/0x150
  RP(r2): start_kernel+0x6c8/0x1190
  [<0000000040101ab4>] start_kernel+0x6c8/0x1190
  [<0000000040108574>] start_parisc+0x158/0x1b8

During memory initialization in mem_init() the memory zomes have not been set
up yet, so avoid using virt_to_page() and similar functions.

Signed-off-by: Helge Deller <>
Cc: # v5.0+

diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 5224fb38d766..0904542966a2 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -562,7 +562,8 @@ void __init mem_init(void)

 	high_memory = __va((max_pfn << PAGE_SHIFT));
-	set_max_mapnr(page_to_pfn(virt_to_page(high_memory - 1)) + 1);
+	set_max_mapnr(max_low_pfn);

 #ifdef CONFIG_PA11

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-28 20:29 [PATCH] parisc: Fix kernel panic in mem_init() Helge Deller

Linux-parisc archive on

Archives are clonable:
	git clone --mirror linux-parisc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-parisc linux-parisc/ \
	public-inbox-index linux-parisc

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone