aboutsummaryrefslogtreecommitdiffstats
path: root/exec.c
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2011-05-09 15:20:22 +0200
committerDavid 'Digit' Turner <digit@android.com>2011-06-01 17:08:17 +0200
commit795bb19daea966401df15bbf23c57b98848eec23 (patch)
tree650c9b1c3582f51707172fc73c14ea3e1a367f47 /exec.c
parent45c3be00d4c1f85ba8bbf34827c024fbc636725f (diff)
downloadexternal_qemu-795bb19daea966401df15bbf23c57b98848eec23.zip
external_qemu-795bb19daea966401df15bbf23c57b98848eec23.tar.gz
external_qemu-795bb19daea966401df15bbf23c57b98848eec23.tar.bz2
qemu-common.h: other intergrates
Change-Id: Iaf5221814247d7686ec3d57abeab097b09c6a5dd
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/exec.c b/exec.c
index 003a4cc..a81df7d 100644
--- a/exec.c
+++ b/exec.c
@@ -1565,14 +1565,15 @@ static void cpu_unlink_tb(CPUState *env)
TranslationBlock *tb;
static spinlock_t interrupt_lock = SPIN_LOCK_UNLOCKED;
+ spin_lock(&interrupt_lock);
tb = env->current_tb;
/* if the cpu is currently executing code, we must unlink it and
all the potentially executing TB */
- if (tb && !testandset(&interrupt_lock)) {
+ if (tb) {
env->current_tb = NULL;
tb_reset_jump_recursive(tb);
- resetlock(&interrupt_lock);
}
+ spin_unlock(&interrupt_lock);
}
/* mask must never be zero, except for A20 change call */