[PATCH v2] perf/cgroup: correct indirection in perf_less_group_idx
From: Ian Rogers
Date: Sat Mar 21 2020 - 12:43:39 EST
The void* in perf_less_group_idx is to a cell in the array which points
at a perf_event*, as such it is a perf_event**.
Fixes: 6eef8a7116de ("perf/core: Use min_heap in visit_groups_merge()")
Reported-By: John Sperbeck <jsperbeck@xxxxxxxxxx>
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
kernel/events/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index d22e4ba59dfa..a758c2311c53 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -3503,7 +3503,8 @@ static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
static bool perf_less_group_idx(const void *l, const void *r)
{
- const struct perf_event *le = l, *re = r;
+ const struct perf_event *le = *(const struct perf_event **)l;
+ const struct perf_event *re = *(const struct perf_event **)r;
return le->group_index < re->group_index;
}
--
2.25.1.696.g5e7596f4ac-goog