|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 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>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
---
Changes in V3:
- Add Acked-by: Jan Beulich <jbeulich@xxxxxxxx>.
---
Changes in V2:
- Drop local variable xen_bootmodule as it won't be used after initialization.
- Drop unnecessary cast for the 3rd argument of add_boot_module() call in
start_xen().
- Change BUG_ON(!xen_bootmodule) to panic().
---
xen/arch/riscv/setup.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 6d156c3a40..f531ca38ee 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>
@@ -44,6 +45,11 @@ 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. */
+ if ( !add_boot_module(BOOTMOD_XEN, virt_to_maddr(_start),
+ _end - _start, false) )
+ panic("Failed to add BOOTMOD_XEN\n");
+
printk("All set up\n");
machine_halt();
--
2.46.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |