Skip to content

Commit 177c2ff

Browse files
committed
Merge tag 'perf_urgent_for_v6.7_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fix from Borislav Petkov: - Avoid iterating over newly created group leader event's siblings because there are none, and thus prevent a lockdep splat * tag 'perf_urgent_for_v6.7_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf: Fix perf_event_validate_size() lockdep splat
2 parents 0e38983 + 7e2c1e4 commit 177c2ff

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

kernel/events/core.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,6 +1947,16 @@ static bool perf_event_validate_size(struct perf_event *event)
19471947
group_leader->nr_siblings + 1) > 16*1024)
19481948
return false;
19491949

1950+
/*
1951+
* When creating a new group leader, group_leader->ctx is initialized
1952+
* after the size has been validated, but we cannot safely use
1953+
* for_each_sibling_event() until group_leader->ctx is set. A new group
1954+
* leader cannot have any siblings yet, so we can safely skip checking
1955+
* the non-existent siblings.
1956+
*/
1957+
if (event == group_leader)
1958+
return true;
1959+
19501960
for_each_sibling_event(sibling, group_leader) {
19511961
if (__perf_event_read_size(sibling->attr.read_format,
19521962
group_leader->nr_siblings + 1) > 16*1024)

0 commit comments

Comments
 (0)