[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 3/3] xen/riscv: register Xen's load address as a boot module
Avoid using BOOTMOD_XEN region for other purposes or boot modules which could result in memory corruption or undefined behaviour. Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> --- xen/arch/riscv/setup.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c index 6d156c3a40..39375b3366 100644 --- a/xen/arch/riscv/setup.c +++ b/xen/arch/riscv/setup.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include <xen/bug.h> +#include <xen/bootfdt.h> #include <xen/compile.h> #include <xen/device_tree.h> #include <xen/init.h> @@ -26,6 +27,8 @@ unsigned char __initdata cpu0_boot_stack[STACK_SIZE] void __init noreturn start_xen(unsigned long bootcpu_id, paddr_t dtb_addr) { + struct bootmodule *xen_bootmodule; + remove_identity_mapping(); set_processor_id(0); @@ -44,6 +47,13 @@ void __init noreturn start_xen(unsigned long bootcpu_id, "Please check your bootloader.\n", dtb_addr, BOOT_FDT_VIRT_SIZE); + /* Register Xen's load address as a boot module. */ + xen_bootmodule = add_boot_module(BOOTMOD_XEN, + virt_to_maddr(_start), + (paddr_t)(_end - _start), false); + + BUG_ON(!xen_bootmodule); + printk("All set up\n"); machine_halt(); -- 2.46.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |