Commit c62a0ffb authored by Jiaxun Yang's avatar Jiaxun Yang Committed by sanglipeng
Browse files

MIPS: Loongson64: Reserve vgabios memory on boot

stable inclusion
from stable-v5.10.204
commit ff803322e9351019e373178582798689fe04b37a
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I9J4PL

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ff803322e9351019e373178582798689fe04b37a



--------------------------------

commit 8f7aa77a463f47c9e00592d02747a9fcf2271543 upstream.

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: a94e4f24 ("MIPS: init: Drop boot_mem_map")
Signed-off-by: default avatarJiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent 43087df4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -140,6 +140,11 @@ static __init void reserve_pio_range(void)
			}
		}
	}

	/* Reserve vgabios if it comes from firmware */
	if (loongson_sysconf.vgabios_addr)
		memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr),
				SZ_256K);
}

void __init arch_init_irq(void)