summaryrefslogtreecommitdiff
path: root/spinlock.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2011-07-27 20:49:45 -0400
committerFrans Kaashoek <[email protected]>2011-07-27 20:49:45 -0400
commitdccb915282854476ce47752df6631dcce3b8f661 (patch)
treea84aa8ed35618f99c3d7e8cdd466d22ae7bad597 /spinlock.c
parent9acdfe0d04f3fcf95c6e392e08afb45bdfe16c20 (diff)
parent13a96baefc0ff5d8262c4bc8c797bee4b157443c (diff)
downloadxv6-labs-dccb915282854476ce47752df6631dcce3b8f661.tar.gz
xv6-labs-dccb915282854476ce47752df6631dcce3b8f661.tar.bz2
xv6-labs-dccb915282854476ce47752df6631dcce3b8f661.zip
Merge commit 'origin/master' into page
Diffstat (limited to 'spinlock.c')
-rw-r--r--spinlock.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/spinlock.c b/spinlock.c
index 68cfbe9..e668598 100644
--- a/spinlock.c
+++ b/spinlock.c
@@ -23,7 +23,7 @@ initlock(struct spinlock *lk, char *name)
void
acquire(struct spinlock *lk)
{
- pushcli();
+ pushcli(); // disable interrupts to avoid deadlock.
if(holding(lk))
panic("acquire");
@@ -71,7 +71,7 @@ getcallerpcs(void *v, uint pcs[])
ebp = (uint*)v - 2;
for(i = 0; i < 10; i++){
- if(ebp == 0 || ebp < (uint *) 0x100000 || ebp == (uint*)0xffffffff)
+ if(ebp == 0 || ebp < (uint*)0x100000 || ebp == (uint*)0xffffffff)
break;
pcs[i] = ebp[1]; // saved %eip
ebp = (uint*)ebp[0]; // saved %ebp