qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 2/2] target/riscv: Mask out upper sscofpmf bits during valida


From: Alistair Francis
Subject: Re: [PATCH 2/2] target/riscv: Mask out upper sscofpmf bits during validation
Date: Wed, 29 Jan 2025 10:48:06 +1000

On Thu, Jan 16, 2025 at 10:51 AM Atish Patra <atishp@rivosinc.com> wrote:
>
> As per the ISA definition, the upper 8 bits in hpmevent are defined
> by Sscofpmf for privilege mode filtering and overflow bits while the
> lower 56 bits are desginated for platform specific hpmevent values.
> For the reset case, mhpmevent value should have zero in lower 56 bits.
> Software may set the OF bit to indicate disable interrupt.
>
> Ensure that correct value is checked after masking while clearing the
> event encodings.
>
> Signed-off-by: Atish Patra <atishp@rivosinc.com>

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

Alistair

> ---
>  target/riscv/pmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c
> index cf713663ee56..0408f96e6af8 100644
> --- a/target/riscv/pmu.c
> +++ b/target/riscv/pmu.c
> @@ -390,7 +390,7 @@ int riscv_pmu_update_event_map(CPURISCVState *env, 
> uint64_t value,
>       * Expected mhpmevent value is zero for reset case. Remove the current
>       * mapping.
>       */
> -    if (!value) {
> +    if (!(value & MHPMEVENT_IDX_MASK)) {
>          g_hash_table_foreach_remove(cpu->pmu_event_ctr_map,
>                                      pmu_remove_event_map,
>                                      GUINT_TO_POINTER(ctr_idx));
>
> --
> 2.34.1
>
>



reply via email to

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