As the tasklet subsystem is now initialized, it is necessary to implement sync_local_execstate(), since it is invoked when something calls tasklet_softirq_action(), which is registered in tasklet_subsys_init().
Signed-off-by: Oleksii Kurochko <[email protected]> --- Changes in v2: - Update the commit message. - Move implementation of sync_vcpu_execstate() to separate commit as it doesn't connect to tasklet subsystem. --- xen/arch/riscv/domain.c | 5 +++++ xen/arch/riscv/setup.c | 3 +++ xen/arch/riscv/stubs.c | 5 ----- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c index 13ac384c4b76..1458902aff82 100644 --- a/xen/arch/riscv/domain.c +++ b/xen/arch/riscv/domain.c @@ -254,3 +254,8 @@ void vcpu_kick(struct vcpu *v) smp_send_event_check_mask(cpumask_of(v->processor)); } } + +void sync_local_execstate(void) +{ + /* Nothing to do -- no lazy switching */ +} diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c index 9b4835960d20..e8dbd55ce79e 100644 --- a/xen/arch/riscv/setup.c +++ b/xen/arch/riscv/setup.c @@ -12,6 +12,7 @@ #include <xen/serial.h> #include <xen/shutdown.h> #include <xen/smp.h> +#include <xen/tasklet.h> #include <xen/timer.h> #include <xen/vmap.h> #include <xen/xvmalloc.h> @@ -133,6 +134,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id, panic("Booting using ACPI isn't supported\n"); } + tasklet_subsys_init(); + init_IRQ(); riscv_fill_hwcap(); diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c index cb7546558b8e..c912d46f1e42 100644 --- a/xen/arch/riscv/stubs.c +++ b/xen/arch/riscv/stubs.c @@ -91,11 +91,6 @@ void continue_running(struct vcpu *same) BUG_ON("unimplemented"); } -void sync_local_execstate(void) -{ - BUG_ON("unimplemented"); -} - void sync_vcpu_execstate(struct vcpu *v) { BUG_ON("unimplemented"); -- 2.52.0
