From: Robert Richter robert.richter@linaro.org
Check if an event already exists before adding it.
Signed-off-by: Robert Richter robert.richter@linaro.org Signed-off-by: Robert Richter rric@kernel.org --- kernel/events/persistent.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/kernel/events/persistent.c b/kernel/events/persistent.c index 586cea5..4fcd071 100644 --- a/kernel/events/persistent.c +++ b/kernel/events/persistent.c @@ -40,6 +40,12 @@ add_persistent_event_on_cpu(unsigned int cpu, struct perf_event_attr *attr,
mutex_lock(&per_cpu(pers_events_lock, cpu));
+ desc = get_persistent_event(cpu, attr); + if (desc) { + event = ERR_PTR(-EEXIST); + goto out; + } + desc = kzalloc(sizeof(*desc), GFP_KERNEL); if (!desc) { event = ERR_PTR(-ENOMEM);