On Thu, Dec 13, 2018 at 12:04:43AM -0500, Emilio G. Cota wrote: > Soon we will call cpu_has_work without the BQL. > > Cc: David Gibson <da...@gibson.dropbear.id.au> > Cc: Alexander Graf <ag...@suse.de> > Cc: qemu-...@nongnu.org > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Signed-off-by: Emilio G. Cota <c...@braap.org>
Acked-by: David Gibson <da...@gibson.dropbear.id.au> > --- > target/ppc/translate_init.inc.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c > index 757eb6df16..cf453cb099 100644 > --- a/target/ppc/translate_init.inc.c > +++ b/target/ppc/translate_init.inc.c > @@ -8462,6 +8462,8 @@ static bool cpu_has_work_POWER7(CPUState *cs) > PowerPCCPU *cpu = POWERPC_CPU(cs); > CPUPPCState *env = &cpu->env; > > + g_assert(qemu_mutex_iothread_locked()); > + > if (cpu_halted(cs)) { > if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD)) { > return false; > @@ -8505,7 +8507,7 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data) > pcc->pcr_supported = PCR_COMPAT_2_06 | PCR_COMPAT_2_05; > pcc->init_proc = init_proc_POWER7; > pcc->check_pow = check_pow_nocheck; > - cc->has_work = cpu_has_work_POWER7; > + cc->has_work_with_iothread_lock = cpu_has_work_POWER7; > pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL | PPC_STRING | PPC_MFTB | > PPC_FLOAT | PPC_FLOAT_FSEL | PPC_FLOAT_FRES | > PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE | > @@ -8616,6 +8618,8 @@ static bool cpu_has_work_POWER8(CPUState *cs) > PowerPCCPU *cpu = POWERPC_CPU(cs); > CPUPPCState *env = &cpu->env; > > + g_assert(qemu_mutex_iothread_locked()); > + > if (cpu_halted(cs)) { > if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD)) { > return false; > @@ -8667,7 +8671,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) > pcc->pcr_supported = PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | PCR_COMPAT_2_05; > pcc->init_proc = init_proc_POWER8; > pcc->check_pow = check_pow_nocheck; > - cc->has_work = cpu_has_work_POWER8; > + cc->has_work_with_iothread_lock = cpu_has_work_POWER8; > pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL | PPC_STRING | PPC_MFTB | > PPC_FLOAT | PPC_FLOAT_FSEL | PPC_FLOAT_FRES | > PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE | > @@ -8808,6 +8812,8 @@ static bool cpu_has_work_POWER9(CPUState *cs) > PowerPCCPU *cpu = POWERPC_CPU(cs); > CPUPPCState *env = &cpu->env; > > + g_assert(qemu_mutex_iothread_locked()); > + > if (cpu_halted(cs)) { > if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD)) { > return false; > @@ -8861,7 +8867,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) > PCR_COMPAT_2_05; > pcc->init_proc = init_proc_POWER9; > pcc->check_pow = check_pow_nocheck; > - cc->has_work = cpu_has_work_POWER9; > + cc->has_work_with_iothread_lock = cpu_has_work_POWER9; > pcc->insns_flags = PPC_INSNS_BASE | PPC_ISEL | PPC_STRING | PPC_MFTB | > PPC_FLOAT | PPC_FLOAT_FSEL | PPC_FLOAT_FRES | > PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE | > @@ -10253,6 +10259,8 @@ static bool ppc_cpu_has_work(CPUState *cs) > PowerPCCPU *cpu = POWERPC_CPU(cs); > CPUPPCState *env = &cpu->env; > > + g_assert(qemu_mutex_iothread_locked()); > + > return msr_ee && (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD); > } > > @@ -10452,7 +10460,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, void > *data) > cc->class_by_name = ppc_cpu_class_by_name; > pcc->parent_parse_features = cc->parse_features; > cc->parse_features = ppc_cpu_parse_featurestr; > - cc->has_work = ppc_cpu_has_work; > + cc->has_work_with_iothread_lock = ppc_cpu_has_work; > cc->do_interrupt = ppc_cpu_do_interrupt; > cc->cpu_exec_interrupt = ppc_cpu_exec_interrupt; > cc->dump_state = ppc_cpu_dump_state; -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature