====================================================== WARNING: possible circular locking dependency detected 4.14.91+ #1 Not tainted ------------------------------------------------------ syz-executor0/1160 is trying to acquire lock: (&mm->mmap_sem){++++}, at: [] __might_fault+0xd4/0x1b0 mm/memory.c:4554 but task is already holding lock: (&cpuctx_mutex){+.+.}, at: [] perf_event_ctx_lock_nested+0x14d/0x2c0 kernel/events/core.c:1240 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #5 (&cpuctx_mutex){+.+.}: -> #4 (pmus_lock){+.+.}: -> #3 (cpu_hotplug_lock.rw_sem){++++}: -> #2 (&sb->s_type->i_mutex_key#10){+.+.}: -> #1 (ashmem_mutex){+.+.}: -> #0 (&mm->mmap_sem){++++}: other info that might help us debug this: Chain exists of: &mm->mmap_sem --> pmus_lock --> &cpuctx_mutex Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&cpuctx_mutex); lock(pmus_lock); lock(&cpuctx_mutex); lock(&mm->mmap_sem); *** DEADLOCK *** 1 lock held by syz-executor0/1160: #0: (&cpuctx_mutex){+.+.}, at: [] perf_event_ctx_lock_nested+0x14d/0x2c0 kernel/events/core.c:1240 stack backtrace: CPU: 1 PID: 1160 Comm: syz-executor0 Not tainted 4.14.91+ #1 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xb9/0x10e lib/dump_stack.c:53 print_circular_bug.isra.0.cold+0x2dc/0x425 kernel/locking/lockdep.c:1258 input: syz1 as /devices/virtual/input/input507 input: syz1 as /devices/virtual/input/input508 input: syz1 as /devices/virtual/input/input509 input: syz1 as /devices/virtual/input/input510 input: syz1 as /devices/virtual/input/input511 input: syz1 as /devices/virtual/input/input512 input: syz1 as /devices/virtual/input/input513 input: syz1 as /devices/virtual/input/input514 input: syz1 as /devices/virtual/input/input515 input: syz1 as /devices/virtual/input/input516 input: syz1 as /devices/virtual/input/input517 input: syz1 as /devices/virtual/input/input518 input: syz1 as /devices/virtual/input/input519 input: syz1 as /devices/virtual/input/input520 input: syz1 as /devices/virtual/input/input521 input: syz1 as /devices/virtual/input/input523 input: syz1 as /devices/virtual/input/input524 input: syz1 as /devices/virtual/input/input529 input: syz1 as /devices/virtual/input/input530 input: syz1 as /devices/virtual/input/input536 input: syz1 as /devices/virtual/input/input537 input: syz1 as /devices/virtual/input/input543 input: syz1 as /devices/virtual/input/input544 input: syz1 as /devices/virtual/input/input545 input: syz1 as /devices/virtual/input/input546 input: syz1 as /devices/virtual/input/input551 input: syz1 as /devices/virtual/input/input553