aboutsummaryrefslogtreecommitdiff
path: root/spinlock.c
diff options
context:
space:
mode:
authorFrans Kaashoek <kaashoek@mit.edu>2018-08-30 16:14:34 -0400
committerFrans Kaashoek <kaashoek@mit.edu>2018-08-30 16:14:34 -0400
commit1d19081efbb9517d07c7e6c1a8393c6343ba7817 (patch)
tree10deccca08fb49c7f4e5c4fb445b150fee64348b /spinlock.c
parent2c73068e825060d188fd9519ebb5bc59fa39c8b2 (diff)
downloadxv6-labs-2022-1d19081efbb9517d07c7e6c1a8393c6343ba7817.tar.xz
xv6-labs-2022-1d19081efbb9517d07c7e6c1a8393c6343ba7817.zip
Allow holding to be called with interrupts enabled (for Mark Morrissey).
Diffstat (limited to 'spinlock.c')
-rw-r--r--spinlock.c6
1 files changed, 5 insertions, 1 deletions
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;
}