fred.kon...@greensocs.com writes: > From: KONRAD Frederic <fred.kon...@greensocs.com> > > This changes just the tb_flush called from tb_alloc. > > TODO: > * changes the other tb_flush. > > Signed-off-by: KONRAD Frederic <fred.kon...@greensocs.com> > --- > translate-all.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/translate-all.c b/translate-all.c > index 8bd8fe8..9adaffa 100644 > --- a/translate-all.c > +++ b/translate-all.c > @@ -1147,7 +1147,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, > tb = tb_alloc(pc); > if (!tb) { > /* flush must be done */ > - tb_flush(env); > + tb_flush_safe(env);
Hold on this is async right? What stops us rolling on and then getting flushed when the other vCPUs come to a halt? It deserves a comment at least. > /* cannot fail at this point */ > tb = tb_alloc(pc); > /* Don't forget to invalidate previous TB info. */ -- Alex Bennée