[PATCH] lib: pmu: check SSCOF before masking

Xiang W wxjstz at 126.com
Wed Dec 8 03:51:03 PST 2021


在 2021-12-08星期三的 14:16 +0300,Nikita Shubin写道:
> From: Nikita Shubin <n.shubin at yadro.com>
> 
> We should check if SSCOF extension is present,
> before applying inhibit mask and clearing overflow,
> otherwise undesirable value can be written
> in MHPMEVENT_N CSR.
> 
> Signed-off-by: Nikita Shubin <n.shubin at yadro.com>
Reviewed-by: Xiang W <wxjstz at 126.com>
> ---
>  lib/sbi/sbi_pmu.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c
> index 10668a3..5b845f8 100644
> --- a/lib/sbi/sbi_pmu.c
> +++ b/lib/sbi/sbi_pmu.c
> @@ -467,7 +467,8 @@ static int pmu_update_hw_mhpmevent(struct
> sbi_pmu_hw_event *hw_evt, int ctr_idx,
>                 return SBI_EFAIL;
>  
>         /* Always clear the OVF bit and inhibit countin of events in
> M-mode */
> -       mhpmevent_val = (mhpmevent_val & ~MHPMEVENT_SSCOF_MASK) |
> MHPMEVENT_MINH;
> +       if (sbi_hart_has_feature(scratch, SBI_HART_HAS_SSCOFPMF))
> +               mhpmevent_val = (mhpmevent_val &
> ~MHPMEVENT_SSCOF_MASK) | MHPMEVENT_MINH;
>  
>         /* Update the inhibit flags based on inhibit flags received
> from supervisor */
>         pmu_update_inhibit_flags(flags, &mhpmevent_val);
> -- 
> 2.31.1
> 
> 





More information about the opensbi mailing list