On 10/19/18 2:05 AM, Emilio G. Cota wrote: > +++ b/target/arm/helper.c > @@ -1295,12 +1295,14 @@ static uint64_t isr_read(CPUARMState *env, const > ARMCPRegInfo *ri) > CPUState *cs = ENV_GET_CPU(env); > uint64_t ret = 0; > > - if (cs->interrupt_request & CPU_INTERRUPT_HARD) { > + cpu_mutex_lock(cs); > + if (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD) { > ret |= CPSR_I; > } > - if (cs->interrupt_request & CPU_INTERRUPT_FIQ) { > + if (cpu_interrupt_request(cs) & CPU_INTERRUPT_FIQ) { > ret |= CPSR_F; > } > + cpu_mutex_unlock(cs); > /* External aborts are not possible in QEMU so A bit is always clear */ > return ret; > }
I think simply reading cpu_interrupt_request once into a local variable is better, and no need for extra locking then. Otherwise, Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~