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
This commit is contained in:
@@ -1947,6 +1947,16 @@ static bool perf_event_validate_size(struct perf_event *event)
|
||||
group_leader->nr_siblings + 1) > 16*1024)
|
||||
return false;
|
||||
|
||||
/*
|
||||
* When creating a new group leader, group_leader->ctx is initialized
|
||||
* after the size has been validated, but we cannot safely use
|
||||
* for_each_sibling_event() until group_leader->ctx is set. A new group
|
||||
* leader cannot have any siblings yet, so we can safely skip checking
|
||||
* the non-existent siblings.
|
||||
*/
|
||||
if (event == group_leader)
|
||||
return true;
|
||||
|
||||
for_each_sibling_event(sibling, group_leader) {
|
||||
if (__perf_event_read_size(sibling->attr.read_format,
|
||||
group_leader->nr_siblings + 1) > 16*1024)
|
||||
|
||||
Reference in New Issue
Block a user