Message ID | 20181213050453.9677-68-cota@braap.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | per-CPU locks | expand |
On 13/12/2018 05:04, Emilio G. Cota wrote: > Soon we will call cpu_has_work without the BQL. > > Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > Cc: Artyom Tarasenko <atar4qemu@gmail.com> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Emilio G. Cota <cota@braap.org> > --- > target/sparc/cpu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c > index 88427283c1..54bffc1a6c 100644 > --- a/target/sparc/cpu.c > +++ b/target/sparc/cpu.c > @@ -709,6 +709,8 @@ static bool sparc_cpu_has_work(CPUState *cs) > SPARCCPU *cpu = SPARC_CPU(cs); > CPUSPARCState *env = &cpu->env; > > + g_assert(qemu_mutex_iothread_locked()); > + > return (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD) && > cpu_interrupts_enabled(env); > } > @@ -870,7 +872,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data) > > cc->class_by_name = sparc_cpu_class_by_name; > cc->parse_features = sparc_cpu_parse_features; > - cc->has_work = sparc_cpu_has_work; > + cc->has_work_with_iothread_lock = sparc_cpu_has_work; > cc->do_interrupt = sparc_cpu_do_interrupt; > cc->cpu_exec_interrupt = sparc_cpu_exec_interrupt; > cc->dump_state = sparc_cpu_dump_state; Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> ATB, Mark.
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index 88427283c1..54bffc1a6c 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -709,6 +709,8 @@ static bool sparc_cpu_has_work(CPUState *cs) SPARCCPU *cpu = SPARC_CPU(cs); CPUSPARCState *env = &cpu->env; + g_assert(qemu_mutex_iothread_locked()); + return (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD) && cpu_interrupts_enabled(env); } @@ -870,7 +872,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data) cc->class_by_name = sparc_cpu_class_by_name; cc->parse_features = sparc_cpu_parse_features; - cc->has_work = sparc_cpu_has_work; + cc->has_work_with_iothread_lock = sparc_cpu_has_work; cc->do_interrupt = sparc_cpu_do_interrupt; cc->cpu_exec_interrupt = sparc_cpu_exec_interrupt; cc->dump_state = sparc_cpu_dump_state;