From f982ef0ef09401ce729e7c25272eebc95b6f0651 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Fri, 14 May 2021 22:51:09 -0700 Subject: [PATCH] Kernel: Halt CPU on deadly UBSAN instead of calling PANIC The separate backtrace that the PANIC emits isn't useful and just adds more data to visually filter from the output when debugging an issue. Instead of calling PANIC, just emit the message with dbgln() and manually halt the system. --- Kernel/UBSanitizer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Kernel/UBSanitizer.cpp b/Kernel/UBSanitizer.cpp index c30f58436ed..37873c4a418 100644 --- a/Kernel/UBSanitizer.cpp +++ b/Kernel/UBSanitizer.cpp @@ -5,8 +5,8 @@ */ #include +#include #include -#include #include using namespace Kernel; @@ -24,8 +24,10 @@ static void print_location(const SourceLocation& location) dbgln("KUBSAN: at {}, line {}, column: {}", location.filename(), location.line(), location.column()); } dump_backtrace(); - if (g_ubsan_is_deadly) - PANIC("UB is configured to be deadly."); + if (g_ubsan_is_deadly) { + dbgln("UB is configured to be deadly, halting the system."); + Processor::halt(); + } } void __ubsan_handle_load_invalid_value(const InvalidValueData&, ValueHandle) __attribute__((used));