Unverified Commit 2c206cde authored by Atish Patra's avatar Atish Patra Committed by Palmer Dabbelt
Browse files

drivers/perf: riscv: Return error for default case



If the upper two bits has an invalid valid (0x1), the event mapping
is not reliable as it returns an uninitialized variable.

Return appropriate value for the default case.

Fixes: f0c9363d ("perf/riscv-sbi: Add platform specific firmware event handling")

Signed-off-by: default avatarAtish Patra <atishp@rivosinc.com>
Link: https://lore.kernel.org/r/20241212-pmu_event_fixes_v2-v2-2-813e8a4f5962@rivosinc.com


Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent fc58db9a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -507,7 +507,7 @@ static int pmu_sbi_event_map(struct perf_event *event, u64 *econfig)
{
	u32 type = event->attr.type;
	u64 config = event->attr.config;
	int ret;
	int ret = -ENOENT;

	/*
	 * Ensure we are finished checking standard hardware events for
@@ -551,10 +551,11 @@ static int pmu_sbi_event_map(struct perf_event *event, u64 *econfig)
			ret = SBI_PMU_EVENT_TYPE_FW << 16 | RISCV_PLAT_FW_EVENT;
			*econfig = config & RISCV_PMU_PLAT_FW_EVENT_MASK;
			break;
		default:
			break;
		}
		break;
	default:
		ret = -ENOENT;
		break;
	}