123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- From: Tobias Wolf <[email protected]>
- Subject: [v2] MIPS: Fix memory reservation in bootmem_init for certain non-usermem setups
- Commit 67a3ba25aa95 ("MIPS: Fix incorrect mem=X@Y handling") introduced a new
- issue for rt288x where "PHYS_OFFSET" is 0x0 but the calculated "ramstart" is
- not. As the prerequisite of custom memory map has been removed, this results
- in the full memory range of 0x0 - 0x8000000 to be marked as reserved for this
- platform.
- v2: Correctly compare that usermem is not null.
- This patch adds the originally intended prerequisite again.
- Signed-off-by: Tobias Wolf <[email protected]>
- ---
- --- a/arch/mips/kernel/setup.c
- +++ b/arch/mips/kernel/setup.c
- @@ -369,6 +369,8 @@ static unsigned long __init bootmap_byte
- return ALIGN(bytes, sizeof(long));
- }
-
- +static int usermem __initdata;
- +
- static void __init bootmem_init(void)
- {
- unsigned long reserved_end;
- @@ -442,7 +444,7 @@ static void __init bootmem_init(void)
- /*
- * Reserve any memory between the start of RAM and PHYS_OFFSET
- */
- - if (ramstart > PHYS_OFFSET)
- + if (usermem && ramstart > PHYS_OFFSET)
- add_memory_region(PHYS_OFFSET, ramstart - PHYS_OFFSET,
- BOOT_MEM_RESERVED);
-
- @@ -652,8 +654,6 @@ static void __init bootmem_init(void)
- * initialization hook for anything else was introduced.
- */
-
- -static int usermem __initdata;
- -
- static int __init early_parse_mem(char *p)
- {
- phys_addr_t start, size;
|