sh: Fix up broken 32-bit initrd support.
Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
committed by
Paul Mundt
parent
c6feb6142c
commit
28d6e52cf7
@@ -249,17 +249,18 @@ void __init setup_bootmem_allocator(unsigned long free_pfn)
|
|||||||
ROOT_DEV = Root_RAM0;
|
ROOT_DEV = Root_RAM0;
|
||||||
|
|
||||||
if (LOADER_TYPE && INITRD_START) {
|
if (LOADER_TYPE && INITRD_START) {
|
||||||
if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) {
|
unsigned long initrd_start_phys = INITRD_START + __MEMORY_START;
|
||||||
reserve_bootmem(INITRD_START + __MEMORY_START,
|
|
||||||
INITRD_SIZE, BOOTMEM_DEFAULT);
|
if (initrd_start_phys + INITRD_SIZE <= PFN_PHYS(max_low_pfn)) {
|
||||||
initrd_start = INITRD_START + PAGE_OFFSET +
|
reserve_bootmem(initrd_start_phys, INITRD_SIZE,
|
||||||
__MEMORY_START;
|
BOOTMEM_DEFAULT);
|
||||||
|
initrd_start = (unsigned long)__va(initrd_start_phys);
|
||||||
initrd_end = initrd_start + INITRD_SIZE;
|
initrd_end = initrd_start + INITRD_SIZE;
|
||||||
} else {
|
} else {
|
||||||
printk("initrd extends beyond end of memory "
|
printk("initrd extends beyond end of memory "
|
||||||
"(0x%08lx > 0x%08lx)\ndisabling initrd\n",
|
"(0x%08lx > 0x%08lx)\ndisabling initrd\n",
|
||||||
INITRD_START + INITRD_SIZE,
|
initrd_start_phys + INITRD_SIZE,
|
||||||
max_low_pfn << PAGE_SHIFT);
|
PFN_PHYS(max_low_pfn));
|
||||||
initrd_start = 0;
|
initrd_start = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user