[PATCH v2 2/3] riscv: vector: allow non-preemptible kernel-mode vector with IRQs off
Sebastian Andrzej Siewior
bigeasy at linutronix.de
Fri Jul 17 00:03:50 PDT 2026
On 2026-07-15 00:16:21 [-0500], Andy Chiu wrote:
> diff --git a/arch/riscv/kernel/kernel_mode_vector.c b/arch/riscv/kernel/kernel_mode_vector.c
> index 307ac369c3d4..6627e1a82e19 100644
> --- a/arch/riscv/kernel/kernel_mode_vector.c
> +++ b/arch/riscv/kernel/kernel_mode_vector.c
> @@ -55,13 +55,16 @@ void get_cpu_vector_context(void)
> * disable softirqs so it is impossible for softirqs to nest
> * get_cpu_vector_context() when kernel is actively using Vector.
> */
> - if (!IS_ENABLED(CONFIG_PREEMPT_RT))
> - local_bh_disable();
> - else
> + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) {
> + if (!irqs_disabled())
> + local_bh_disable();
> + } else {
> preempt_disable();
> + }
>
> riscv_v_start(RISCV_KERNEL_MODE_V);
> }
> +EXPORT_SYMBOL_GPL(get_cpu_vector_context);
EXPORT_SYMBOL_FOR_KVM ?
Sebastian
More information about the linux-riscv
mailing list