All uses have been replaced with tb_flush__exclusive. Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- include/exec/tb-flush.h | 19 ++++++++----------- accel/tcg/tb-maint.c | 22 ---------------------- 2 files changed, 8 insertions(+), 33 deletions(-)
diff --git a/include/exec/tb-flush.h b/include/exec/tb-flush.h index f3898d1826..d6586b9d5f 100644 --- a/include/exec/tb-flush.h +++ b/include/exec/tb-flush.h @@ -9,21 +9,18 @@ #define _TB_FLUSH_H_ /** - * tb_flush() - flush all translation blocks - * @cs: CPUState (must be valid, but treated as anonymous pointer) + * tb_flush__exclusive() - flush all translation blocks * - * Used to flush all the translation blocks in the system. Sometimes - * it is simpler to flush everything than work out which individual - * translations are now invalid and ensure they are not called - * anymore. + * Used to flush all the translation blocks in the system. + * Sometimes it is simpler to flush everything than work out which + * individual translations are now invalid and ensure they are + * not called anymore. * - * tb_flush() takes care of running the flush in an exclusive context - * if it is not already running in one. This means no guest code will - * run until this complete. + * Must be called from an exclusive context, e.g. start_exclusive + * or vm_stop. */ -void tb_flush(CPUState *cs); - void tb_flush__exclusive(void); + void tcg_flush_jmp_cache(CPUState *cs); #endif /* _TB_FLUSH_H_ */ diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index d1695be00b..0fe7a0de8a 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -778,28 +778,6 @@ void tb_flush__exclusive(void) qemu_plugin_flush_cb(); } -static void do_tb_flush(CPUState *cpu, run_on_cpu_data tb_flush_count) -{ - /* If it is already been done on request of another CPU, just retry. */ - if (tb_ctx.tb_flush_count == tb_flush_count.host_int) { - tb_flush__exclusive(); - } -} - -void tb_flush(CPUState *cpu) -{ - if (tcg_enabled()) { - unsigned tb_flush_count = qatomic_read(&tb_ctx.tb_flush_count); - - if (cpu_in_serial_context(cpu)) { - do_tb_flush(cpu, RUN_ON_CPU_HOST_INT(tb_flush_count)); - } else { - async_safe_run_on_cpu(cpu, do_tb_flush, - RUN_ON_CPU_HOST_INT(tb_flush_count)); - } - } -} - /* remove @orig from its @n_orig-th jump list */ static inline void tb_remove_from_jmp_list(TranslationBlock *orig, int n_orig) { -- 2.43.0