From 0231ee4ad30b3ffd9f9681d61c0e0490b01a2d5d Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Tue, 20 Sep 2022 14:13:01 +0200 Subject: [PATCH] hw: don't halt kernel due to unknown cpu exception Fix genodelabs/genode#4617 --- repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc b/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc index 73cb72bb34..17e431043c 100644 --- a/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc +++ b/repos/base-hw/src/core/spec/arm_v8/kernel/thread.cc @@ -55,6 +55,16 @@ void Thread::exception(Cpu & cpu) " ISS=", Cpu::Esr::Iss::get(esr), " ip=", (void*)regs->ip); }; + + /* + * If the machine exception is caused by a non-privileged + * component, mark it dead, and continue execution. + */ + if (regs->exception_type == Cpu::SYNC_LEVEL_EL0) { + Genode::raw("Will freeze thread ", *this); + _become_inactive(DEAD); + return; + } break; } default: