====================================================== WARNING: possible circular locking dependency detected 5.0.0-next-20190306 #4 Not tainted ------------------------------------------------------ syz-executor.0/4582 is trying to acquire lock: 00000000f3009928 (&(&u->lock)->rlock/1){+.+.}, at: sk_diag_dump_icons net/unix/diag.c:83 [inline] 00000000f3009928 (&(&u->lock)->rlock/1){+.+.}, at: sk_diag_fill.isra.0+0x9c0/0xf30 net/unix/diag.c:145 but task is already holding lock: 000000008f1a958b (rlock-AF_UNIX){+.+.}, at: spin_lock include/linux/spinlock.h:329 [inline] 000000008f1a958b (rlock-AF_UNIX){+.+.}, at: sk_diag_dump_icons net/unix/diag.c:65 [inline] 000000008f1a958b (rlock-AF_UNIX){+.+.}, at: sk_diag_fill.isra.0+0x8cb/0xf30 net/unix/diag.c:145 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (rlock-AF_UNIX){+.+.}: lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4202 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd kernel/locking/spinlock.c:152 skb_queue_tail+0x26/0x150 net/core/skbuff.c:2972 unix_dgram_sendmsg+0xc31/0x11e0 net/unix/af_unix.c:1755 sock_sendmsg_nosec net/socket.c:622 [inline] sock_sendmsg+0xdd/0x130 net/socket.c:632 ___sys_sendmsg+0x3e2/0x930 net/socket.c:2137 __sys_sendmmsg+0x1bf/0x4d0 net/socket.c:2232 __do_sys_sendmmsg net/socket.c:2261 [inline] __se_sys_sendmmsg net/socket.c:2258 [inline] __x64_sys_sendmmsg+0x9d/0x100 net/socket.c:2258 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #0 (&(&u->lock)->rlock/1){+.+.}: check_prevs_add kernel/locking/lockdep.c:2324 [inline] validate_chain kernel/locking/lockdep.c:2705 [inline] __lock_acquire+0x239c/0x3fb0 kernel/locking/lockdep.c:3692 lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4202 _raw_spin_lock_nested+0x35/0x50 kernel/locking/spinlock.c:354 sk_diag_dump_icons net/unix/diag.c:83 [inline] sk_diag_fill.isra.0+0x9c0/0xf30 net/unix/diag.c:145 sk_diag_dump net/unix/diag.c:179 [inline] unix_diag_dump+0x35c/0x550 net/unix/diag.c:207 netlink_dump+0x55d/0xfb0 net/netlink/af_netlink.c:2252 __netlink_dump_start+0x5b4/0x7e0 net/netlink/af_netlink.c:2360 netlink_dump_start include/linux/netlink.h:226 [inline] unix_diag_handler_dump+0x390/0x740 net/unix/diag.c:308 __sock_diag_cmd net/core/sock_diag.c:232 [inline] sock_diag_rcv_msg+0x322/0x410 net/core/sock_diag.c:263 netlink_rcv_skb+0x17a/0x460 net/netlink/af_netlink.c:2485 sock_diag_rcv+0x2b/0x40 net/core/sock_diag.c:274 netlink_unicast_kernel net/netlink/af_netlink.c:1310 [inline] netlink_unicast+0x536/0x720 net/netlink/af_netlink.c:1336 netlink_sendmsg+0x8ae/0xd70 net/netlink/af_netlink.c:1925 sock_sendmsg_nosec net/socket.c:622 [inline] sock_sendmsg+0xdd/0x130 net/socket.c:632 sock_write_iter+0x27c/0x3e0 net/socket.c:923 call_write_iter include/linux/fs.h:1863 [inline] do_iter_readv_writev+0x5e1/0x8e0 fs/read_write.c:680 do_iter_write fs/read_write.c:956 [inline] do_iter_write+0x184/0x610 fs/read_write.c:937 vfs_writev+0x1b3/0x2f0 fs/read_write.c:1001 do_writev+0xf6/0x290 fs/read_write.c:1036 __do_sys_writev fs/read_write.c:1109 [inline] __se_sys_writev fs/read_write.c:1106 [inline] __x64_sys_writev+0x75/0xb0 fs/read_write.c:1106 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(rlock-AF_UNIX); lock(&(&u->lock)->rlock/1); lock(rlock-AF_UNIX); lock(&(&u->lock)->rlock/1); *** DEADLOCK *** 5 locks held by syz-executor.0/4582: #0: 0000000078f0bda3 (sock_diag_mutex){+.+.}, at: sock_diag_rcv+0x1c/0x40 net/core/sock_diag.c:273 #1: 0000000035880812 (sock_diag_table_mutex){+.+.}, at: __sock_diag_cmd net/core/sock_diag.c:227 [inline] #1: 0000000035880812 (sock_diag_table_mutex){+.+.}, at: sock_diag_rcv_msg+0x19d/0x410 net/core/sock_diag.c:263 #2: 000000001e2fb1bc (nlk_cb_mutex-SOCK_DIAG){+.+.}, at: netlink_dump+0xe7/0xfb0 net/netlink/af_netlink.c:2207 #3: 00000000fa71f21c (unix_table_lock){+.+.}, at: spin_lock include/linux/spinlock.h:329 [inline] #3: 00000000fa71f21c (unix_table_lock){+.+.}, at: unix_diag_dump+0x10d/0x550 net/unix/diag.c:193 #4: 000000008f1a958b (rlock-AF_UNIX){+.+.}, at: spin_lock include/linux/spinlock.h:329 [inline] #4: 000000008f1a958b (rlock-AF_UNIX){+.+.}, at: sk_diag_dump_icons net/unix/diag.c:65 [inline] #4: 000000008f1a958b (rlock-AF_UNIX){+.+.}, at: sk_diag_fill.isra.0+0x8cb/0xf30 net/unix/diag.c:145 stack backtrace: CPU: 0 PID: 4582 Comm: syz-executor.0 Not tainted 5.0.0-next-20190306 #4 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 print_circular_bug.isra.0.cold+0x1cc/0x28f kernel/locking/lockdep.c:1562 check_prev_add.constprop.0+0xf11/0x23c0 kernel/locking/lockdep.c:2211 check_prevs_add kernel/locking/lockdep.c:2324 [inline] validate_chain kernel/locking/lockdep.c:2705 [inline] __lock_acquire+0x239c/0x3fb0 kernel/locking/lockdep.c:3692 lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4202 _raw_spin_lock_nested+0x35/0x50 kernel/locking/spinlock.c:354 sk_diag_dump_icons net/unix/diag.c:83 [inline] sk_diag_fill.isra.0+0x9c0/0xf30 net/unix/diag.c:145 sk_diag_dump net/unix/diag.c:179 [inline] unix_diag_dump+0x35c/0x550 net/unix/diag.c:207 netlink_dump+0x55d/0xfb0 net/netlink/af_netlink.c:2252 __netlink_dump_start+0x5b4/0x7e0 net/netlink/af_netlink.c:2360 netlink_dump_start include/linux/netlink.h:226 [inline] unix_diag_handler_dump+0x390/0x740 net/unix/diag.c:308 __sock_diag_cmd net/core/sock_diag.c:232 [inline] sock_diag_rcv_msg+0x322/0x410 net/core/sock_diag.c:263 netlink_rcv_skb+0x17a/0x460 net/netlink/af_netlink.c:2485 sock_diag_rcv+0x2b/0x40 net/core/sock_diag.c:274 netlink_unicast_kernel net/netlink/af_netlink.c:1310 [inline] netlink_unicast+0x536/0x720 net/netlink/af_netlink.c:1336 netlink_sendmsg+0x8ae/0xd70 net/netlink/af_netlink.c:1925 sock_sendmsg_nosec net/socket.c:622 [inline] sock_sendmsg+0xdd/0x130 net/socket.c:632 sock_write_iter+0x27c/0x3e0 net/socket.c:923 call_write_iter include/linux/fs.h:1863 [inline] do_iter_readv_writev+0x5e1/0x8e0 fs/read_write.c:680 do_iter_write fs/read_write.c:956 [inline] do_iter_write+0x184/0x610 fs/read_write.c:937 vfs_writev+0x1b3/0x2f0 fs/read_write.c:1001 do_writev+0xf6/0x290 fs/read_write.c:1036 __do_sys_writev fs/read_write.c:1109 [inline] __se_sys_writev fs/read_write.c:1106 [inline] __x64_sys_writev+0x75/0xb0 fs/read_write.c:1106 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x458079 Code: ad b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 7b b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007fb7a030dc78 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000458079 RDX: 0000000000000001 RSI: 00000000200002c0 RDI: 0000000000000007 RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fb7a030e6d4 R13: 00000000004c4b00 R14: 00000000004dd2b8 R15: 00000000ffffffff