From 917629f16e10dbf9e5b54c43642cd2e6dae4fb9b Mon Sep 17 00:00:00 2001 From: Paul Pan Date: Fri, 23 Aug 2024 20:35:46 +0800 Subject: [PATCH] chore: kernel/riscv/trap: panic when trap in kernel mode --- kernel/src/arch/riscv/trap.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/src/arch/riscv/trap.rs b/kernel/src/arch/riscv/trap.rs index d9bfe84..385dd2e 100644 --- a/kernel/src/arch/riscv/trap.rs +++ b/kernel/src/arch/riscv/trap.rs @@ -18,8 +18,7 @@ extern "C" { #[no_mangle] extern "C" fn kernel_trap_handler(tf: &mut TrapContext) { - // No trap in kernel, except from IDLE thread - // TODO: Replace CONSOLE Mutex to ReentrantLock + // No trap in kernel unsafe { CONSOLE.force_unlock() } tf.handle_trap(true); } @@ -76,6 +75,10 @@ impl TrapContextOps for TrapContext { }; } + if from_kernel { + panic_fatal!("Buggy kernel: trap in kernel mode"); + } + let tcb = self.as_object_mut(); match scause.cause() {