Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5f4d339 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

perf: Fix perf_init_event()



We ought to return -ENOENT when non of the registered PMUs
recognise the requested event.

This fixes a boot crash that occurs if no PMU is available
but the NMI watchdog tries to register an event.

Reported-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent cee010ec
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -5236,12 +5236,15 @@ struct pmu *perf_init_event(struct perf_event *event)
	list_for_each_entry_rcu(pmu, &pmus, entry) {
		int ret = pmu->event_init(event);
		if (!ret)
			break;
			goto unlock;

		if (ret != -ENOENT) {
			pmu = ERR_PTR(ret);
			break;
			goto unlock;
		}
	}
	pmu = ERR_PTR(-ENOENT);
unlock:
	srcu_read_unlock(&pmus_srcu, idx);

	return pmu;