From 8eeb8db2ed4a8fa915c4ade39e079546e070e92f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 25 Feb 2021 19:23:39 +0100 Subject: [PATCH] Kernel: Don't disable interrupts while dealing with a process crash This was necessary in the past when crash handling would modify various global things, but all that stuff is long gone so we can simplify crashes by leaving the interrupt flag alone. --- Kernel/Arch/i386/CPU.cpp | 1 - Kernel/Process.cpp | 1 - Kernel/Process.h | 2 -- Kernel/Syscalls/abort.cpp | 1 - 4 files changed, 5 deletions(-) diff --git a/Kernel/Arch/i386/CPU.cpp b/Kernel/Arch/i386/CPU.cpp index 9d745fbae1..03cbdc7e33 100644 --- a/Kernel/Arch/i386/CPU.cpp +++ b/Kernel/Arch/i386/CPU.cpp @@ -169,7 +169,6 @@ void handle_crash(RegisterState& regs, const char* description, int signal, bool PANIC("Crash in ring 0"); } - cli(); process->crash(signal, regs.eip, out_of_memory); } diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index e4ed6f2f31..1ae5a9ea9f 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -308,7 +308,6 @@ void create_signal_trampoline() void Process::crash(int signal, u32 eip, bool out_of_memory) { - VERIFY_INTERRUPTS_DISABLED(); VERIFY(!is_dead()); VERIFY(Process::current() == this); diff --git a/Kernel/Process.h b/Kernel/Process.h index ee9838e36a..9cf2ff3ec9 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -696,7 +696,6 @@ inline const LogStream& operator<<(const LogStream& stream, const Process& proce do { \ if (Process::current()->has_promises()) { \ dbgln("Has made a promise"); \ - cli(); \ Process::current()->crash(SIGABRT, 0); \ VERIFY_NOT_REACHED(); \ } \ @@ -707,7 +706,6 @@ inline const LogStream& operator<<(const LogStream& stream, const Process& proce if (Process::current()->has_promises() \ && !Process::current()->has_promised(Pledge::promise)) { \ dbgln("Has not pledged {}", #promise); \ - cli(); \ Process::current()->coredump_metadata().set( \ "pledge_violation", #promise); \ Process::current()->crash(SIGABRT, 0); \ diff --git a/Kernel/Syscalls/abort.cpp b/Kernel/Syscalls/abort.cpp index d9bd27ebae..7276ac8cda 100644 --- a/Kernel/Syscalls/abort.cpp +++ b/Kernel/Syscalls/abort.cpp @@ -32,7 +32,6 @@ namespace Kernel { void Process::sys$abort() { - cli(); crash(SIGABRT, 0); }