Commit 05d013a0 authored by Paul Burton's avatar Paul Burton

MIPS: Detect bad _PFN_SHIFT values

2 recent commits have fixed issues where _PFN_SHIFT grew too large due
to the introduction of too many pgprot bits in our PTEs for some MIPS32
kernel configurations. Tracking down such issues can be tricky, so add a
BUILD_BUG_ON() to help.
Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
parent d1af2ab3
...@@ -446,6 +446,12 @@ static inline void __init mem_init_free_highmem(void) ...@@ -446,6 +446,12 @@ static inline void __init mem_init_free_highmem(void)
void __init mem_init(void) void __init mem_init(void)
{ {
/*
* When _PFN_SHIFT is greater than PAGE_SHIFT we won't have enough PTE
* bits to hold a full 32b physical address on MIPS32 systems.
*/
BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
#ifdef CONFIG_DISCONTIGMEM #ifdef CONFIG_DISCONTIGMEM
#error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet" #error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment