Skip to content

Commit

Permalink
cputlb: Pass CPUState to cpu_unlink_tb()
Browse files Browse the repository at this point in the history
CPUArchState is no longer needed.

Signed-off-by: Andreas Färber <[email protected]>
  • Loading branch information
afaerber committed Feb 16, 2013
1 parent d77953b commit 907a5e3
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
2 changes: 1 addition & 1 deletion exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,7 @@ void cpu_exit(CPUArchState *env)
CPUState *cpu = ENV_GET_CPU(env);

cpu->exit_request = 1;
cpu_unlink_tb(env);
cpu_unlink_tb(cpu);
}

void cpu_abort(CPUArchState *env, const char *fmt, ...)
Expand Down
9 changes: 5 additions & 4 deletions translate-all.c
Original file line number Diff line number Diff line change
Expand Up @@ -1416,13 +1416,12 @@ void tb_invalidate_phys_addr(hwaddr addr)
}
#endif /* TARGET_HAS_ICE && !defined(CONFIG_USER_ONLY) */

void cpu_unlink_tb(CPUArchState *env)
void cpu_unlink_tb(CPUState *cpu)
{
/* FIXME: TB unchaining isn't SMP safe. For now just ignore the
problem and hope the cpu will stop of its own accord. For userspace
emulation this often isn't actually as bad as it sounds. Often
signals are used primarily to interrupt blocking syscalls. */
CPUState *cpu = ENV_GET_CPU(env);
TranslationBlock *tb;
static spinlock_t interrupt_lock = SPIN_LOCK_UNLOCKED;

Expand Down Expand Up @@ -1476,7 +1475,7 @@ static void tcg_handle_interrupt(CPUArchState *env, int mask)
cpu_abort(env, "Raised interrupt while not in I/O function");
}
} else {
cpu_unlink_tb(env);
cpu_unlink_tb(cpu);
}
}

Expand Down Expand Up @@ -1624,8 +1623,10 @@ void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)

void cpu_interrupt(CPUArchState *env, int mask)
{
CPUState *cpu = ENV_GET_CPU(env);

env->interrupt_request |= mask;
cpu_unlink_tb(env);
cpu_unlink_tb(cpu);
}

/*
Expand Down
2 changes: 1 addition & 1 deletion translate-all.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

/* translate-all.c */
void tb_invalidate_phys_page_fast(tb_page_addr_t start, int len);
void cpu_unlink_tb(CPUArchState *env);
void cpu_unlink_tb(CPUState *cpu);
void tb_check_watchpoint(CPUArchState *env);

#endif /* TRANSLATE_ALL_H */

0 comments on commit 907a5e3

Please sign in to comment.