On Thu, Feb 9, 2023 at 3:53 PM Himanshu Chauhan <hchau...@ventanamicro.com> wrote: > > When MSECCFG.MML is set, after checking the address range in PMP if the > asked permissions are not same as programmed in PMP, the default > permissions are applied. This should only be the case when there > is no matching address is found. > > This patch skips applying default rules when matching address range > is found. It returns the index of the match PMP entry. > > fixes: 824cac681c3 (target/riscv: Fix PMP propagation for tlb) > > Signed-off-by: Himanshu Chauhan <hchau...@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > target/riscv/pmp.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c > index d85ad07caa..0dfdb35828 100644 > --- a/target/riscv/pmp.c > +++ b/target/riscv/pmp.c > @@ -446,9 +446,12 @@ int pmp_hart_has_privs(CPURISCVState *env, target_ulong > addr, > } > } > > - if ((privs & *allowed_privs) == privs) { > - ret = i; > - } > + /* > + * If matching address range was found, the protection bits > + * defined with PMP must be used. We shouldn't fallback on > + * finding default privileges. > + */ > + ret = i; > break; > } > } > -- > 2.39.1 > >