====================================================== WARNING: possible circular locking dependency detected 4.14.103+ #20 Not tainted ------------------------------------------------------ syz-executor.5/23419 is trying to acquire lock: (cpu_hotplug_lock.rw_sem){++++}, at: [] get_online_cpus include/linux/cpu.h:138 [inline] (cpu_hotplug_lock.rw_sem){++++}, at: [] lru_add_drain_all+0xa/0x20 mm/swap.c:729 but task is already holding lock: (&sb->s_type->i_mutex_key#10){+.+.}, at: [] inode_lock include/linux/fs.h:715 [inline] (&sb->s_type->i_mutex_key#10){+.+.}, at: [] shmem_add_seals+0x12b/0x1150 mm/shmem.c:2829 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #5 (&sb->s_type->i_mutex_key#10){+.+.}: -> #4 (ashmem_mutex){+.+.}: -> #3 (&mm->mmap_sem){++++}: -> #2 (&cpuctx_mutex){+.+.}: -> #1 (pmus_lock){+.+.}: -> #0 (cpu_hotplug_lock.rw_sem){++++}: other info that might help us debug this: Chain exists of: cpu_hotplug_lock.rw_sem --> ashmem_mutex --> &sb->s_type->i_mutex_key#10 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&sb->s_type->i_mutex_key#10); lock(ashmem_mutex); lock(&sb->s_type->i_mutex_key#10); lock(cpu_hotplug_lock.rw_sem); *** DEADLOCK *** 1 lock held by syz-executor.5/23419: #0: (&sb->s_type->i_mutex_key#10){+.+.}, at: [] inode_lock include/linux/fs.h:715 [inline] #0: (&sb->s_type->i_mutex_key#10){+.+.}, at: [] shmem_add_seals+0x12b/0x1150 mm/shmem.c:2829 stack backtrace: CPU: 1 PID: 23419 Comm: syz-executor.5 Not tainted 4.14.103+ #20 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 device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode device lo left promiscuous mode device lo entered promiscuous mode