On Sun, Feb 21, 2021 at 10:31 AM Jim Shu <[email protected]> wrote: > > If PMP permission of any address has been changed by updating PMP entry, > flush all TLB pages to prevent from getting old permission. > > Signed-off-by: Jim Shu <[email protected]>
Reviewed-by: Alistair Francis <[email protected]> Alistair > --- > target/riscv/pmp.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c > index ebd874cde3..cff020122a 100644 > --- a/target/riscv/pmp.c > +++ b/target/riscv/pmp.c > @@ -28,6 +28,7 @@ > #include "qapi/error.h" > #include "cpu.h" > #include "trace.h" > +#include "exec/exec-all.h" > > static void pmp_write_cfg(CPURISCVState *env, uint32_t addr_index, > uint8_t val); > @@ -347,6 +348,9 @@ void pmpcfg_csr_write(CPURISCVState *env, uint32_t > reg_index, > cfg_val = (val >> 8 * i) & 0xff; > pmp_write_cfg(env, (reg_index * 4) + i, cfg_val); > } > + > + /* If PMP permission of any addr has been changed, flush TLB pages. */ > + tlb_flush(env_cpu(env)); > } > > > -- > 2.30.1 > >
