linux/drivers/perf
Sergey Matyukevich 24988042c5 perf: RISC-V: fix access beyond allocated array
commit 20e0fbab16 upstream.

SBI firmware should report total number of firmware and hardware counters
including unused ones or special ones. In this case the kernel doesn't need
to make any assumptions about gaps in reported counters, e.g. excluded timer
counter. That was fixed in OpenSBI v1.1 by commit 3f66465fb6bf ("lib: pmu:
allow to use the highest available counter"). This kernel patch has no effect
if SBI firmware behaves correctly. However it eliminates access beyond the
allocated pmu_ctr_list if the kernel is used with OpenSBI older than v1.1.

Fixes: e999143459 ("RISC-V: Add perf platform driver based on SBI PMU extension")
Signed-off-by: Sergey Matyukevich <sergey.matyukevich@syntacore.com>
Reviewed-by: Atish Patra <atishp@rivosinc.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220830155306.301714-2-geomatsi@gmail.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2022-09-15 10:47:10 +02:00
..
hisilicon drivers/perf: hisi: Add Support for CPA PMU 2022-05-06 15:14:31 +01:00
apple_m1_cpu_pmu.c drivers/perf: Add Apple icestorm/firestorm CPU PMU driver 2022-03-08 13:32:48 +00:00
arm-cci.c perf: replace bitmap_weight with bitmap_empty where appropriate 2022-02-15 14:38:57 +00:00
arm-ccn.c perf/arm-ccn: Use platform_get_irq() to get the interrupt 2022-02-08 14:25:35 +00:00
arm-cmn.c perf/arm-cmn: Decode CAL devices properly in debugfs 2022-05-12 13:44:56 +01:00
arm_dmc620_pmu.c perf/arm-dmc620: Use irq_set_affinity() 2021-05-24 11:01:59 +01:00
arm_dsu_pmu.c perf/arm-dsu: Use irq_set_affinity() 2021-05-24 11:02:00 +01:00
arm_pmu.c arm_pmu: Validate single/group leader events 2022-04-13 11:48:45 +01:00
arm_pmu_acpi.c perf: check return value of armpmu_request_irq() 2022-05-06 15:04:48 +01:00
arm_pmu_platform.c perf/arm_pmu_platform: Clean up with dev_printk 2021-03-30 11:41:50 +01:00
arm_smmuv3_pmu.c perf/smmuv3: Don't cast parameter in bit operations 2022-02-15 16:51:26 +00:00
arm_spe_pmu.c drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX 2022-08-17 15:14:19 +02:00
fsl_imx8_ddr_perf.c perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant 2022-04-08 14:17:57 +01:00
Kconfig perf: MARVELL_CN10K_DDR_PMU should depend on ARCH_THUNDER 2022-04-04 10:51:20 +01:00
Makefile RISC-V Patches for the 5.18 Merge Window, Part 1 2022-03-25 10:11:38 -07:00
marvell_cn10k_ddr_pmu.c perf/marvell: Fix !CONFIG_OF build for CN10K DDR PMU driver 2022-03-09 12:31:00 +00:00
marvell_cn10k_tad_pmu.c perf/marvell_cn10k: Fix tad_pmu_event_init() to check pmu type first 2022-05-10 12:14:27 +01:00
qcom_l2_pmu.c perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator 2022-04-04 10:50:02 +01:00
qcom_l3_pmu.c drivers/perf: Simplify EVENT ATTR macro in qcom_l3_pmu.c 2021-06-11 11:18:40 +01:00
riscv_pmu.c RISC-V: Update user page mapping only once during start 2022-08-17 15:13:50 +02:00
riscv_pmu_legacy.c RISC-V: Add a simple platform driver for RISC-V legacy perf 2022-03-21 14:58:25 -07:00
riscv_pmu_sbi.c perf: RISC-V: fix access beyond allocated array 2022-09-15 10:47:10 +02:00
thunderx2_pmu.c perf: Replace acpi_bus_get_device() 2022-02-08 15:14:53 +00:00
xgene_pmu.c perf: replace bitmap_weight with bitmap_empty where appropriate 2022-02-15 14:38:57 +00:00