On Sat, 2026-08-15 at 13:37 -0700, Richard Henderson wrote:
> Check for region disabled before checking the region range.
> 
> Signed-off-by: Richard Henderson <[email protected]>

Reviewed-by: Alistair Francis <[email protected]>

Alistair

> ---
>  target/riscv/tcg/pmp.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/target/riscv/tcg/pmp.c b/target/riscv/tcg/pmp.c
> index 41b55519a8..5bccc60527 100644
> --- a/target/riscv/tcg/pmp.c
> +++ b/target/riscv/tcg/pmp.c
> @@ -415,6 +415,10 @@ bool pmp_hart_has_privs(CPURISCVState *env,
> hwaddr addr,
>       * from low to high
>       */
>      for (i = 0; i < pmp_regions; i++) {
> +        if (pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg) ==
> PMP_AMATCH_OFF) {
> +            continue;
> +        }
> +
>          s = pmp_is_in_range(env, i, addr);
>          e = pmp_is_in_range(env, i, addr + pmp_size - 1);
>  
> @@ -427,10 +431,7 @@ bool pmp_hart_has_privs(CPURISCVState *env,
> hwaddr addr,
>          }
>  
>          /* fully inside */
> -        const uint8_t a_field =
> -            pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg);
> -
> -        if (((s + e) == 2) && (PMP_AMATCH_OFF != a_field)) {
> +        if (s + e == 2) {
>              /*
>               * If the PMP entry is not off and the address is in
> range,
>               * do the priv check

Reply via email to