|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 23/26] xen/riscv: initialize RCU, scheduler, and system domains in start_xen()
Wire up the missing early-boot initialization steps in start_xen().
The scheduler must be initialized prior to do_initcalls() because
cpupool_create_pool() is called during initcalls; without it,
BUG_ON(IS_ERR(pool)) is triggered inside cpupool_create_pool().
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
---
Changes in v2:
- New patch. Several patches were folded into one.
---
xen/arch/riscv/setup.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 56a0907a855f..c3e98733ebc3 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -6,9 +6,12 @@
#include <xen/compile.h>
#include <xen/console.h>
#include <xen/device_tree.h>
+#include <xen/domain.h>
#include <xen/init.h>
#include <xen/irq.h>
#include <xen/mm.h>
+#include <xen/rcupdate.h>
+#include <xen/sched.h>
#include <xen/serial.h>
#include <xen/shutdown.h>
#include <xen/smp.h>
@@ -156,12 +159,21 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
timer_init();
+ rcu_init();
+
+ setup_system_domains();
+
local_irq_enable();
console_init_postirq();
guest_mm_init();
+ scheduler_init();
+ set_current(idle_vcpu[0]);
+
+ do_initcalls();
+
printk("All set up\n");
machine_halt();
--
2.54.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |