From: Anup Patel Date: Sun, 11 Jul 2021 08:58:19 +0000 (+0530) Subject: lib: sbi: Fix sbi_pmu_exit() for systems not having MCOUNTINHIBIT csr X-Git-Tag: v1.3~483 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a76ac4449bf2b67b899ebdb5085834e94987b690;p=platform%2Fkernel%2Fopensbi-spacemit.git lib: sbi: Fix sbi_pmu_exit() for systems not having MCOUNTINHIBIT csr The sbi_pmu_exit() crashes on systems not having MCOUNTINHIBIT csr so to fix this we check SBI_HART_HAS_MCOUNTINHIBIT feature in sbi_pmu_exit() and do nothing if it is not available. Fixes: 13d40f21d588 ("lib: sbi: Add PMU support") Signed-off-by: Anup Patel --- diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c index 4092e6f..c276a46 100644 --- a/lib/sbi/sbi_pmu.c +++ b/lib/sbi/sbi_pmu.c @@ -583,6 +583,10 @@ void sbi_pmu_exit(struct sbi_scratch *scratch) { u32 hartid = current_hartid(); + /* SBI PMU is not supported if mcountinhibit is not available */ + if (!sbi_hart_has_feature(scratch, SBI_HART_HAS_MCOUNTINHIBIT)) + return; + csr_write(CSR_MCOUNTINHIBIT, 0xFFFFFFF8); csr_write(CSR_MCOUNTEREN, 7); pmu_reset_event_map(hartid);