diff --git a/spinlock.c b/spinlock.c index 9120bf2..4020186 100644 --- a/spinlock.c +++ b/spinlock.c @@ -89,7 +89,11 @@ getcallerpcs(void *v, uint pcs[]) int holding(struct spinlock *lock) { - return lock->locked && lock->cpu == mycpu(); + int r; + pushcli(); + r = lock->locked && lock->cpu == mycpu(); + popcli(); + return r; }