提交 4ec66704 编写于 作者: P Pranith Kumar 提交者: Alex Bennée

mttcg: Add missing tb_lock/unlock() in cpu_exec_step()

The recent patch enabling lock assertions uncovered the missing lock
acquisition in cpu_exec_step(). This patch adds them.
Signed-off-by: NPranith Kumar <bobby.prani@gmail.com>
Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
Reviewed-by: NRichard Henderson <rth@twiddle.net>
上级 6ac3d7e8
...@@ -233,14 +233,18 @@ static void cpu_exec_step(CPUState *cpu) ...@@ -233,14 +233,18 @@ static void cpu_exec_step(CPUState *cpu)
uint32_t flags; uint32_t flags;
cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags); cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags);
tb_lock();
tb = tb_gen_code(cpu, pc, cs_base, flags, tb = tb_gen_code(cpu, pc, cs_base, flags,
1 | CF_NOCACHE | CF_IGNORE_ICOUNT); 1 | CF_NOCACHE | CF_IGNORE_ICOUNT);
tb->orig_tb = NULL; tb->orig_tb = NULL;
tb_unlock();
/* execute the generated code */ /* execute the generated code */
trace_exec_tb_nocache(tb, pc); trace_exec_tb_nocache(tb, pc);
cpu_tb_exec(cpu, tb); cpu_tb_exec(cpu, tb);
tb_lock();
tb_phys_invalidate(tb, -1); tb_phys_invalidate(tb, -1);
tb_free(tb); tb_free(tb);
tb_unlock();
} }
void cpu_exec_step_atomic(CPUState *cpu) void cpu_exec_step_atomic(CPUState *cpu)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册