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~


Reply via email to