summaryrefslogtreecommitdiff
path: root/spinlock.c
diff options
context:
space:
mode:
Diffstat (limited to 'spinlock.c')
-rw-r--r--spinlock.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/spinlock.c b/spinlock.c
index fa04a27..2666842 100644
--- a/spinlock.c
+++ b/spinlock.c
@@ -10,18 +10,18 @@ uint32_t kernel_lock = LOCK_FREE;
void
acquire_spinlock(uint32_t* lock)
{
- int cpu_id = lapic_cpu_number();
- cprintf ("acquire: %d\n", cpu_id);
+ int cpu_id = cpu();
if (*lock == cpu_id)
return;
while ( cmpxchg(LOCK_FREE, cpu_id, lock) != cpu_id ) { ; }
+ cprintf ("acquired: %d\n", cpu_id);
}
void
release_spinlock(uint32_t* lock)
{
- int cpu_id = lapic_cpu_number();
+ int cpu_id = cpu();
cprintf ("release: %d\n", cpu_id);
if (*lock != cpu_id)
panic("release_spinlock: releasing a lock that i don't own\n");
@@ -31,7 +31,7 @@ release_spinlock(uint32_t* lock)
void
release_grant_spinlock(uint32_t* lock, int c)
{
- int cpu_id = lapic_cpu_number();
+ int cpu_id = cpu();
cprintf ("release_grant: %d -> %d\n", cpu_id, c);
if (*lock != cpu_id)
panic("release_spinlock: releasing a lock that i don't own\n");