On Wed, May 20, 2020 at 5:40 AM Alistair Francis <alistair.fran...@wdc.com> wrote: > > Signed-off-by: Alistair Francis <alistair.fran...@wdc.com> > --- > target/riscv/pmp.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c > index 0e6b640fbd..607a991260 100644 > --- a/target/riscv/pmp.c > +++ b/target/riscv/pmp.c > @@ -233,12 +233,16 @@ bool pmp_hart_has_privs(CPURISCVState *env, > target_ulong addr, > return true; > } > > - /* > - * if size is unknown (0), assume that all bytes > - * from addr to the end of the page will be accessed. > - */ > if (size == 0) { > - pmp_size = -(addr | TARGET_PAGE_MASK); > + if (!riscv_feature(env, RISCV_FEATURE_MMU)) {
My previous comments were not fully addressed. I think the logic should be: if (riscv_feature(env, RISCV_FEATURE_MMU)) Otherwise it does not match your comment and the commit title. > + /* > + * If size is unknown (0), assume that all bytes > + * from addr to the end of the page will be accessed. > + */ > + pmp_size = -(addr | TARGET_PAGE_MASK); > + } else { > + pmp_size = sizeof(target_ulong); > + } > } else { > pmp_size = size; > } Regards, Bin