summaryrefslogtreecommitdiffstats
path: root/arch/mips/loongson64
diff options
context:
space:
mode:
authorJiaxun Yang <jiaxun.yang@flygoat.com>2023-11-07 11:15:18 +0000
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>2023-12-05 18:44:31 +0100
commit8f7aa77a463f47c9e00592d02747a9fcf2271543 (patch)
tree912f09edc2ec39ef13ad79c48c010f786061c6d2 /arch/mips/loongson64
parent55702ec9603ebeffb15e6f7b113623fe1d8872f4 (diff)
downloadlinux-stable-8f7aa77a463f47c9e00592d02747a9fcf2271543.tar.gz
linux-stable-8f7aa77a463f47c9e00592d02747a9fcf2271543.tar.bz2
linux-stable-8f7aa77a463f47c9e00592d02747a9fcf2271543.zip
MIPS: Loongson64: Reserve vgabios memory on boot
vgabios is passed from firmware to kernel on Loongson64 systems. Sane firmware will keep this pointer in reserved memory space passed from the firmware but insane firmware keeps it in low memory before kernel entry that is not reserved. Previously kernel won't try to allocate memory from low memory before kernel entry on boot, but after converting to memblock it will do that. Fix by resversing those memory on early boot. Cc: stable@vger.kernel.org Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map") Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Diffstat (limited to 'arch/mips/loongson64')
-rw-r--r--arch/mips/loongson64/init.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/loongson64/init.c b/arch/mips/loongson64/init.c
index ee8de1735b7c..d62262f93069 100644
--- a/arch/mips/loongson64/init.c
+++ b/arch/mips/loongson64/init.c
@@ -88,6 +88,11 @@ void __init szmem(unsigned int node)
break;
}
}
+
+ /* Reserve vgabios if it comes from firmware */
+ if (loongson_sysconf.vgabios_addr)
+ memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr),
+ SZ_256K);
}
#ifndef CONFIG_NUMA