Commit 195320fd authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Russell King

ARM: 8700/1: nommu: always reserve address 0 away

Some nommu systems have RAM at address 0. When vectors are not located
there, the very beginning of memory remains available for dynamic
allocations. The memblock allocator explicitly skips the first page
but the standard page allocator does not, and while it correctly returns
a non-null struct page pointer for that page, page_address() gives 0
which gets confused with NULL (out of memory) by callers despite having
plenty of free memory left.
Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 2bd6bf03
...@@ -344,6 +344,11 @@ void __init arm_mm_memblock_reserve(void) ...@@ -344,6 +344,11 @@ void __init arm_mm_memblock_reserve(void)
* reserved here. * reserved here.
*/ */
#endif #endif
/*
* In any case, always ensure address 0 is never used as many things
* get very confused if 0 is returned as a legitimate address.
*/
memblock_reserve(0, 1);
} }
void __init adjust_lowmem_bounds(void) void __init adjust_lowmem_bounds(void)
......
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