Merge tag 'perf_urgent_for_v6.3_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Borislav Petkov: - Check whether sibling events have been deactivated before adding them to groups - Update the proper event time tracking variable depending on the event type - Fix a memory overwrite issue due to using the wrong function argument when outputting perf events * tag 'perf_urgent_for_v6.3_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf: Fix check before add_event_to_groups() in perf_group_detach() perf: fix perf_event_context->time perf/core: Fix perf_output_begin parameter is incorrectly invoked in perf_event_bpf_output
This commit is contained in:
@@ -2163,7 +2163,7 @@ static void perf_group_detach(struct perf_event *event)
|
||||
/* Inherit group flags from the previous leader */
|
||||
sibling->group_caps = event->group_caps;
|
||||
|
||||
if (!RB_EMPTY_NODE(&event->group_node)) {
|
||||
if (sibling->attach_state & PERF_ATTACH_CONTEXT) {
|
||||
add_event_to_groups(sibling, event->ctx);
|
||||
|
||||
if (sibling->state == PERF_EVENT_STATE_ACTIVE)
|
||||
@@ -3872,7 +3872,7 @@ ctx_sched_in(struct perf_event_context *ctx, enum event_type_t event_type)
|
||||
if (likely(!ctx->nr_events))
|
||||
return;
|
||||
|
||||
if (is_active ^ EVENT_TIME) {
|
||||
if (!(is_active & EVENT_TIME)) {
|
||||
/* start ctx time */
|
||||
__update_context_time(ctx, false);
|
||||
perf_cgroup_set_timestamp(cpuctx);
|
||||
@@ -9187,7 +9187,7 @@ static void perf_event_bpf_output(struct perf_event *event, void *data)
|
||||
|
||||
perf_event_header__init_id(&bpf_event->event_id.header,
|
||||
&sample, event);
|
||||
ret = perf_output_begin(&handle, data, event,
|
||||
ret = perf_output_begin(&handle, &sample, event,
|
||||
bpf_event->event_id.header.size);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user