From 83c66901f8c6d10e872ff7fb1b027b7152295229 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 11 Feb 2025 21:53:20 +0200 Subject: [PATCH] Kernel: Fix reboot when ACPI is disabled If ACPI was disabled ACPI::reset() would page fault when accessing namespace instead of checking wheter namespace is initialized :D --- kernel/kernel/ACPI/ACPI.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/kernel/ACPI/ACPI.cpp b/kernel/kernel/ACPI/ACPI.cpp index afc27dd3..116becf0 100644 --- a/kernel/kernel/ACPI/ACPI.cpp +++ b/kernel/kernel/ACPI/ACPI.cpp @@ -469,6 +469,9 @@ acpi_release_global_lock: BAN::ErrorOr ACPI::prepare_sleep(uint8_t sleep_state) { + if (!m_namespace) + return BAN::Error::from_errno(EFAULT); + auto [pts_path, pts_object] = TRY(m_namespace->find_named_object({}, MUST(AML::NameString::from_string("\\_PTS")))); if (pts_object == nullptr) return {}; @@ -584,7 +587,10 @@ acpi_release_global_lock: return BAN::Error::from_errno(EFAULT); } - TRY(prepare_sleep(5)); + if (!m_namespace) + dwarnln("ACPI namespace not initialized, will not evaluate \\_S5"); + else + TRY(prepare_sleep(5)); dprintln("Resetting system");