qemu-riscv
[Top][All Lists]
Advanced

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

Re: [PATCH 3/3] target/riscv: flush TLB pages if PMP permission has been


From: Alistair Francis
Subject: Re: [PATCH 3/3] target/riscv: flush TLB pages if PMP permission has been changed
Date: Tue, 16 Mar 2021 16:02:50 -0400

On Sun, Feb 21, 2021 at 10:31 AM Jim Shu <cwshu@andestech.com> 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 <cwshu@andestech.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

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
>
>



reply via email to

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