qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/2] target-arm: Correct condition for taking VI


From: Edgar E. Iglesias
Subject: Re: [Qemu-devel] [PATCH 2/2] target-arm: Correct condition for taking VIRQ and VFIQ
Date: Tue, 28 Oct 2014 09:25:41 +1000
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Oct 27, 2014 at 12:58:07PM +0000, Peter Maydell wrote:
> The VIRQ and VFIQ exceptions are (as the comments say) only
> taken if the CPU is in Non-secure state and the IMO/FMO bits
> are set to enable virtualized interrupts. Correct the code
> to actually implement this by using '||' rather than '&&'.

Hi Peter,

Shouldn't this be:

if (secure || ....

?

Cheers,
Edgar

> 
> Signed-off-by: Peter Maydell <address@hidden>
> ---
>  target-arm/cpu.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/target-arm/cpu.h b/target-arm/cpu.h
> index 97eaf79..6145403 100644
> --- a/target-arm/cpu.h
> +++ b/target-arm/cpu.h
> @@ -1269,13 +1269,13 @@ static inline bool arm_excp_unmasked(CPUState *cs, 
> unsigned int excp_idx)
>          }
>          return !(env->daif & PSTATE_I);
>      case EXCP_VFIQ:
> -        if (!secure && !(env->cp15.hcr_el2 & HCR_FMO)) {
> +        if (!secure || !(env->cp15.hcr_el2 & HCR_FMO)) {
>              /* VFIQs are only taken when hypervized and non-secure.  */
>              return false;
>          }
>          return !(env->daif & PSTATE_F);
>      case EXCP_VIRQ:
> -        if (!secure && !(env->cp15.hcr_el2 & HCR_IMO)) {
> +        if (!secure || !(env->cp15.hcr_el2 & HCR_IMO)) {
>              /* VIRQs are only taken when hypervized and non-secure.  */
>              return false;
>          }
> -- 
> 1.9.1
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]