From edabb72c36d3b38d201b348928aa419e8c2c17ac Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Sun, 1 Jun 2025 15:53:50 +0530 Subject: spinlock: use interrupts' helper functions --- kernel/kernel/spinlock.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/kernel/spinlock.cc b/kernel/kernel/spinlock.cc index a57206d..49ebc36 100644 --- a/kernel/kernel/spinlock.cc +++ b/kernel/kernel/spinlock.cc @@ -16,12 +16,13 @@ * along with this program. If not, see . */ +#include "boot/interrupts.h" #include void Spinlock::acquire(void) { - __asm__ volatile("cli"); + Interrupts::disable(); while (!__sync_bool_compare_and_swap(&m_lock, 0, 1)) while (m_lock) __asm__ volatile("rep; nop"); @@ -31,5 +32,6 @@ void Spinlock::release(void) { __sync_bool_compare_and_swap(&m_lock, 1, 0); - // __asm__ volatile("sti"); + if (Interrupts::idt_loaded()) + Interrupts::enable(); } -- cgit v1.2.3