]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit - kernel/events/core.c
perf: Break deadlock involving exec_update_mutex
authorpeterz@infradead.org <peterz@infradead.org>
Fri, 28 Aug 2020 12:37:20 +0000 (14:37 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 9 Dec 2020 16:08:57 +0000 (17:08 +0100)
commit78af4dc949daaa37b3fcd5f348f373085b4e858f
treefc680c63d7cb4156603b7896d963ac2b272012f1
parente6e4f42eb773c1da869af4bad544c26c89cd01ab
perf: Break deadlock involving exec_update_mutex

Syzbot reported a lock inversion involving perf. The sore point being
perf holding exec_update_mutex() for a very long time, specifically
across a whole bunch of filesystem ops in pmu::event_init() (uprobes)
and anon_inode_getfile().

This then inverts against procfs code trying to take
exec_update_mutex.

Move the permission checks later, such that we need to hold the mutex
over less code.

Reported-by: syzbot+db9cdf3dd1f64252c6ef@syzkaller.appspotmail.com
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
kernel/events/core.c