[PATCH v1 23/27] xen/riscv: call do_initcalls() in start_xen()

Oleksii Kurochko posted 27 patches 4 weeks ago
[PATCH v1 23/27] xen/riscv: call do_initcalls() in start_xen()
Posted by Oleksii Kurochko 4 weeks ago
Execute initcall function. Additionally, before do_initcalls() call
scheduler_init() which is needed because of cpupool_create_pool()
is called by do_initcalls(); otherwise BUG_ON(IS_ERR(pool)) will occur
in inside cpupool_create_pool().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 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 cae49bb29626..24bad0c606a5 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -9,6 +9,7 @@
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/mm.h>
+#include <xen/sched.h>
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
@@ -159,6 +160,11 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     guest_mm_init();
 
+    scheduler_init();
+    set_current(idle_vcpu[0]);
+
+    do_initcalls();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.53.0
Re: [PATCH v1 23/27] xen/riscv: call do_initcalls() in start_xen()
Posted by Jan Beulich 5 days, 11 hours ago
On 10.03.2026 18:08, Oleksii Kurochko wrote:
> Execute initcall function. Additionally, before do_initcalls() call
> scheduler_init() which is needed because of cpupool_create_pool()
> is called by do_initcalls(); otherwise BUG_ON(IS_ERR(pool)) will occur
> in inside cpupool_create_pool().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>