]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - kernel/events/core.c
perf/core: Add PERF_PMU_CAP_NO_EXCLUDE for exclusion incapable PMUs
[mirror_ubuntu-eoan-kernel.git] / kernel / events / core.c
index 3cd13a30f732921bec9ac0235613b02da5f91de9..fbe59b793b36cab70c2bb8de845127d7547044a8 100644 (file)
@@ -9772,6 +9772,15 @@ static int perf_try_init_event(struct pmu *pmu, struct perf_event *event)
        if (ctx)
                perf_event_ctx_unlock(event->group_leader, ctx);
 
+       if (!ret) {
+               if (pmu->capabilities & PERF_PMU_CAP_NO_EXCLUDE &&
+                               event_has_any_exclude_flag(event)) {
+                       if (event->destroy)
+                               event->destroy(event);
+                       ret = -EINVAL;
+               }
+       }
+
        if (ret)
                module_put(pmu->module);