Commit f040ddaf authored by Stuart Menefy's avatar Stuart Menefy Committed by Paul Mundt

sh: Fix an unusual memory initialisation error.

This fixes a problems with the set up of Linux memory:

 - When reserving memory at boot time, the code previously reserved
   the bottom page of memory, and then from one page up to the end of
   the bootmap. This had the desired effect, but was strictly speaking
   wrong, as the one page was actually whatever CONFIG_ZERO_PAGE_OFFSET
   had been set to.
Signed-off-by: default avatarStuart Menefy <stuart.menefy@st.com>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 664718a3
...@@ -233,15 +233,17 @@ void __init setup_bootmem_allocator(unsigned long free_pfn) ...@@ -233,15 +233,17 @@ void __init setup_bootmem_allocator(unsigned long free_pfn)
* case of us accidentally initializing the bootmem allocator with * case of us accidentally initializing the bootmem allocator with
* an invalid RAM area. * an invalid RAM area.
*/ */
reserve_bootmem(__MEMORY_START+PAGE_SIZE, reserve_bootmem(__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET,
(PFN_PHYS(free_pfn)+bootmap_size+PAGE_SIZE-1)-__MEMORY_START, (PFN_PHYS(free_pfn) + bootmap_size + PAGE_SIZE - 1) -
BOOTMEM_DEFAULT); (__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET),
BOOTMEM_DEFAULT);
/* /*
* reserve physical page 0 - it's a special BIOS page on many boxes, * reserve physical page 0 - it's a special BIOS page on many boxes,
* enabling clean reboots, SMP operation, laptop functions. * enabling clean reboots, SMP operation, laptop functions.
*/ */
reserve_bootmem(__MEMORY_START, PAGE_SIZE, BOOTMEM_DEFAULT); reserve_bootmem(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET,
BOOTMEM_DEFAULT);
sparse_memory_present_with_active_regions(0); sparse_memory_present_with_active_regions(0);
......
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