diff --git a/src/arch/aarch64/interrupt/exception.rs b/src/arch/aarch64/interrupt/exception.rs
index 589df5213fc302438a644f6e9c9cf5fec0ee8788..cffceb5e681b3f9f1df466311e4c9de1aec5f12c 100644
--- a/src/arch/aarch64/interrupt/exception.rs
+++ b/src/arch/aarch64/interrupt/exception.rs
@@ -32,24 +32,12 @@ exception_stack!(synchronous_exception_at_el0, |stack| {
             println!("FATAL: Not an SVC induced synchronous exception");
             stack.dump();
             stack_trace();
-
-            println!("CPU {}, PID {:?}", cpu_id(), context::context_id());
-
-            // This could deadlock, but at this point we are going to halt anyways
-            {
-                let contexts = context::contexts();
-                if let Some(context_lock) = contexts.current() {
-                    let context = context_lock.read();
-                    println!("NAME: {}", *context.name.read());
-                }
-            }
-
-            // Halt
-            loop {}
+            crate::ksignal(SIGSEGV);
+            stack.scratch.x0
+        } else {
+            let scratch = &stack.scratch;
+            syscall::syscall(scratch.x8, scratch.x0, scratch.x1, scratch.x2, scratch.x3, scratch.x4, stack)
         }
-
-        let scratch = &stack.scratch;
-        syscall::syscall(scratch.x8, scratch.x0, scratch.x1, scratch.x2, scratch.x3, scratch.x4, stack)
     });
 });