riscv: vector: only enable interrupts in the first-use trap
authorAndy Chiu <andy.chiu@sifive.com>
Sun, 25 Jun 2023 15:54:15 +0000 (15:54 +0000)
committerPalmer Dabbelt <palmer@rivosinc.com>
Sat, 1 Jul 2023 14:38:20 +0000 (07:38 -0700)
commit26c38cd802c947401cfbcc285b7d841256b5f17f
treee3a94ae97aeb13645ec11edce28b36e45453e831
parent782aefb177e8932c558ae55f64206ded7fe1292f
riscv: vector: only enable interrupts in the first-use trap

The function irqentry_exit_to_user_mode() must be called with interrupt
disabled. The caller of do_trap_insn_illegal() also assumes running
without interrupts. So, we should turn off interrupts after
riscv_v_first_use_handler() returns.

Fixes: cd054837243b ("riscv: Allocate user's vector context in the first-use trap")
Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
Reviewed-by: Björn Töpel <bjorn@rivosinc.com>
Link: https://lore.kernel.org/r/20230625155416.18629-1-andy.chiu@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/kernel/traps.c