mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 18:10:50 +07:00
powerpc: Fix memory limits when starting at a non-zero address
memblock_enforce_memory_limit() takes the desired maximum quantity of memory to end up with, not an address above which memory will not be used. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
c7704d352d
commit
6dd2270029
@ -97,7 +97,7 @@ static void __init move_device_tree(void)
|
|||||||
start = __pa(initial_boot_params);
|
start = __pa(initial_boot_params);
|
||||||
size = be32_to_cpu(initial_boot_params->totalsize);
|
size = be32_to_cpu(initial_boot_params->totalsize);
|
||||||
|
|
||||||
if ((memory_limit && (start + size) > memory_limit) ||
|
if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) ||
|
||||||
overlaps_crashkernel(start, size)) {
|
overlaps_crashkernel(start, size)) {
|
||||||
p = __va(memblock_alloc(size, PAGE_SIZE));
|
p = __va(memblock_alloc(size, PAGE_SIZE));
|
||||||
memcpy(p, initial_boot_params, size);
|
memcpy(p, initial_boot_params, size);
|
||||||
|
@ -148,7 +148,7 @@ void __init MMU_init(void)
|
|||||||
lowmem_end_addr = memstart_addr + total_lowmem;
|
lowmem_end_addr = memstart_addr + total_lowmem;
|
||||||
#ifndef CONFIG_HIGHMEM
|
#ifndef CONFIG_HIGHMEM
|
||||||
total_memory = total_lowmem;
|
total_memory = total_lowmem;
|
||||||
memblock_enforce_memory_limit(lowmem_end_addr);
|
memblock_enforce_memory_limit(total_lowmem);
|
||||||
memblock_analyze();
|
memblock_analyze();
|
||||||
#endif /* CONFIG_HIGHMEM */
|
#endif /* CONFIG_HIGHMEM */
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user