diff --git a/Kernel/Arch/aarch64/Registers.h b/Kernel/Arch/aarch64/Registers.h index b84aa9363b..264c4ab177 100644 --- a/Kernel/Arch/aarch64/Registers.h +++ b/Kernel/Arch/aarch64/Registers.h @@ -1287,8 +1287,8 @@ struct DAIF { { DAIF daif; - asm("mrs %[value], daif" - : [value] "=r"(daif)); + asm volatile("mrs %[value], daif" + : [value] "=r"(daif)); return daif; } diff --git a/Kernel/WorkQueue.cpp b/Kernel/WorkQueue.cpp index dc99835c89..7c0492737b 100644 --- a/Kernel/WorkQueue.cpp +++ b/Kernel/WorkQueue.cpp @@ -28,13 +28,6 @@ UNMAP_AFTER_INIT WorkQueue::WorkQueue(StringView name) if (name_kstring.is_error()) TODO(); auto [_, thread] = Process::create_kernel_process(name_kstring.release_value(), [this] { -#if ARCH(AARCH64) - // FIXME: This function expects to be executed with interrupts disabled, however on - // aarch64 we spawn (kernel) threads with interrupts enabled, so we need to disable them. - // This code should be written in a way that it is able to be executed with interrupts enabled. - Processor::disable_interrupts(); -#endif - for (;;) { WorkItem* item; bool have_more;