From c35982c9eaa40cc7bd5411f4e4c54ba9b4906ddb Mon Sep 17 00:00:00 2001 From: Ashwin Naren Date: Fri, 27 Feb 2026 17:24:24 -0800 Subject: [PATCH] deliver signal to process on sig sev instead of panicking --- src/arch/arm64/memory/fault.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/arch/arm64/memory/fault.rs b/src/arch/arm64/memory/fault.rs index b462502d..99628c74 100644 --- a/src/arch/arm64/memory/fault.rs +++ b/src/arch/arm64/memory/fault.rs @@ -10,6 +10,7 @@ use crate::{ memory::uaccess::UAccessResult, }, memory::fault::{FaultResolution, handle_demand_fault, handle_protection_fault}, + process::thread_group::signal::SigId, sched::{current::current_task, spawn_kernel_work}, }; use alloc::boxed::Box; @@ -119,15 +120,8 @@ pub fn handle_kernel_mem_fault(exception: Exception, info: AbortIss, state: &mut pub fn handle_mem_fault(exception: Exception, info: AbortIss) { match run_mem_fault_handler(exception, info) { Ok(FaultResolution::Resolved) => {} - // TODO: Implement proc signals. Ok(FaultResolution::Denied) => { - let task = current_task(); - panic!( - "SIGSEGV on process {} {:?} PC: {:x}", - task.process.tgid, - exception, - task.ctx.user().elr_el1 - ) + current_task().process.deliver_signal(SigId::SIGSEGV); } // If the page fault involves sleepy kernel work, we can // spawn that work on the process, since there is no other