====================================================== WARNING: possible circular locking dependency detected 4.14.232-syzkaller #0 Not tainted ------------------------------------------------------ kworker/u4:2/100 is trying to acquire lock: (k-sk_lock-AF_INET){+.+.}, at: [] lock_sock include/net/sock.h:1471 [inline] (k-sk_lock-AF_INET){+.+.}, at: [] do_tcp_setsockopt.constprop.0+0xfb/0x1c10 net/ipv4/tcp.c:2562 but task is already holding lock: ((&(&cp->cp_send_w)->work)){+.+.}, at: [] process_one_work+0x6e6/0x14a0 kernel/workqueue.c:2091 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 ((&(&cp->cp_send_w)->work)){+.+.}: flush_work+0xad/0x770 kernel/workqueue.c:2889 __cancel_work_timer+0x321/0x460 kernel/workqueue.c:2964 rds_tcp_reset_callbacks+0x18d/0x450 net/rds/tcp.c:167 rds_tcp_accept_one+0x61a/0x8b0 net/rds/tcp_listen.c:194 rds_tcp_accept_worker+0x4d/0x70 net/rds/tcp.c:407 process_one_work+0x793/0x14a0 kernel/workqueue.c:2116 worker_thread+0x5cc/0xff0 kernel/workqueue.c:2250 kthread+0x30d/0x420 kernel/kthread.c:232 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404 -> #0 (k-sk_lock-AF_INET){+.+.}: lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998 lock_sock_nested+0xb7/0x100 net/core/sock.c:2796 lock_sock include/net/sock.h:1471 [inline] do_tcp_setsockopt.constprop.0+0xfb/0x1c10 net/ipv4/tcp.c:2562 tcp_setsockopt net/ipv4/tcp.c:2830 [inline] tcp_setsockopt+0xa7/0xc0 net/ipv4/tcp.c:2822 kernel_setsockopt+0xfb/0x1b0 net/socket.c:3396 rds_tcp_cork net/rds/tcp_send.c:43 [inline] rds_tcp_xmit_path_prepare+0xaf/0xe0 net/rds/tcp_send.c:50 rds_send_xmit+0x1ae/0x1c00 net/rds/send.c:187 rds_send_worker+0x6d/0x240 net/rds/threads.c:189 process_one_work+0x793/0x14a0 kernel/workqueue.c:2116 worker_thread+0x5cc/0xff0 kernel/workqueue.c:2250 kthread+0x30d/0x420 kernel/kthread.c:232 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock((&(&cp->cp_send_w)->work)); lock(k-sk_lock-AF_INET); lock((&(&cp->cp_send_w)->work)); lock(k-sk_lock-AF_INET); *** DEADLOCK *** 2 locks held by kworker/u4:2/100: #0: ("%s""krdsd"){+.+.}, at: [] process_one_work+0x6b0/0x14a0 kernel/workqueue.c:2087 #1: ((&(&cp->cp_send_w)->work)){+.+.}, at: [] process_one_work+0x6e6/0x14a0 kernel/workqueue.c:2091 stack backtrace: CPU: 1 PID: 100 Comm: kworker/u4:2 Not tainted 4.14.232-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: krdsd rds_send_worker Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0x1b2/0x281 lib/dump_stack.c:58 print_circular_bug.constprop.0.cold+0x2d7/0x41e kernel/locking/lockdep.c:1258 check_prev_add kernel/locking/lockdep.c:1905 [inline] check_prevs_add kernel/locking/lockdep.c:2022 [inline] validate_chain kernel/locking/lockdep.c:2464 [inline] __lock_acquire+0x2e0e/0x3f20 kernel/locking/lockdep.c:3491 lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998 lock_sock_nested+0xb7/0x100 net/core/sock.c:2796 lock_sock include/net/sock.h:1471 [inline] do_tcp_setsockopt.constprop.0+0xfb/0x1c10 net/ipv4/tcp.c:2562 tcp_setsockopt net/ipv4/tcp.c:2830 [inline] tcp_setsockopt+0xa7/0xc0 net/ipv4/tcp.c:2822 kernel_setsockopt+0xfb/0x1b0 net/socket.c:3396 rds_tcp_cork net/rds/tcp_send.c:43 [inline] rds_tcp_xmit_path_prepare+0xaf/0xe0 net/rds/tcp_send.c:50 rds_send_xmit+0x1ae/0x1c00 net/rds/send.c:187 rds_send_worker+0x6d/0x240 net/rds/threads.c:189 process_one_work+0x793/0x14a0 kernel/workqueue.c:2116 worker_thread+0x5cc/0xff0 kernel/workqueue.c:2250 kthread+0x30d/0x420 kernel/kthread.c:232 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.5' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.5' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.5' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.5' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 xt_hashlimit: max too large, truncated to 1048576 xt_hashlimit: overflow, try lower: 0/0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 9pnet: p9_fd_create_tcp (23408): problem connecting socket to 127.0.0.1 9pnet: p9_fd_create_tcp (23408): problem connecting socket to 127.0.0.1 loop4: p1 p2 < p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33 p34 p35 p36 p37 p38 p39 p40 p41 p42 p43 p44 p45 p46 p47 p48 p49 p50 p51 p52 p53 p54 p55 p56 p57 p58 p59 p60 p61 p62 p63 p64 p65 p66 p67 p68 p69 p70 p71 p72 p73 p74 p75 p76 p77 p78 p79 p80 p81 p82 p83 p84 p85 p86 p87 p88 p89 p90 p91 p92 p93 p94 p95 p96 p97 p98 p99 p100 p101 p102 p103 p104 p105 p106 p107 p108 p109 p110 p111 p112 p113 p114 p115 p116 p117 p118 p119 p120 p121 p122 p123 p124 p125 p126 p127 p128 p129 p130 p131 p132 p133 p134 p135 p136 p137 p138 p139 p140 p141 p142 p143 p144 p145 p146 p147 p148 p149 p150 p151 p152 p153 p154 p155 p156 p157 p158 p159 p160 p161 p162 p163 p164 p165 p166 p167 p168 p169 p170 p171 p172 p173 p174 p175 p176 p177 p178 p179 p180 p181 p182 p183 p184 p185 p186 p187 p188 p189 p190 p191 p192 p193 p194 p195 p196 p197 p198 p199 p200 p201 p202 p203 p204 p205 p206 p207 p208 p209 p210 p211 p212 p213 p214 p215 p216 p217 p218 p21 loop4: partition table partially beyond EOD, truncated loop4: p1 start 10 is beyond EOD, truncated loop4: p2 size 2 extends beyond EOD, truncated loop4: p3 start 225 is beyond EOD, truncated loop4: p4 size 3657465856 extends beyond EOD, truncated loop4: p5 start 10 is beyond EOD, truncated loop4: p6 start 10 is beyond EOD, truncated loop4: p7 start 10 is beyond EOD, truncated overlayfs: fs on 'file0' does not support file handles, falling back to index=off. loop4: p8 start 10 is beyond EOD, truncated overlayfs: fs on './file0' does not support file handles, falling back to index=off. loop4: p9 start 10 is beyond EOD, truncated loop4: p10 start 10 is beyond EOD, truncated loop4: p11 start 10 is beyond EOD, truncated loop4: p12 start 10 is beyond EOD, truncated loop4: p13 start 10 is beyond EOD, truncated overlayfs: fs on 'file0' does not support file handles, falling back to index=off. loop4: p14 start 10 is beyond EOD, truncated loop4: p15 start 10 is beyond EOD, truncated loop4: p16 start 10 is beyond EOD, truncated loop4: p17 start 10 is beyond EOD, truncated loop4: p18 start 10 is beyond EOD, truncated loop4: p19 start 10 is beyond EOD, truncated loop4: p20 start 10 is beyond EOD, truncated loop4: p21 start 10 is beyond EOD, truncated loop4: p22 start 10 is beyond EOD, truncated loop4: p23 start 10 is beyond EOD, truncated loop4: p24 start 10 is beyond EOD, truncated loop4: p25 start 10 is beyond EOD, truncated loop4: p26 start 10 is beyond EOD, truncated loop4: p27 start 10 is beyond EOD, truncated loop4: p28 start 10 is beyond EOD, truncated loop4: p29 start 10 is beyond EOD, truncated loop4: p30 start 10 is beyond EOD, truncated loop4: p31 start 10 is beyond EOD, truncated loop4: p32 start 10 is beyond EOD, truncated loop4: p33 start 10 is beyond EOD, truncated loop4: p34 start 10 is beyond EOD, truncated loop4: p35 start 10 is beyond EOD, truncated loop4: p36 start 10 is beyond EOD, truncated loop4: p37 start 10 is beyond EOD, truncated loop4: p38 start 10 is beyond EOD, truncated loop4: p39 start 10 is beyond EOD, truncated loop4: p40 start 10 is beyond EOD, truncated loop4: p41 start 10 is beyond EOD, truncated loop4: p42 start 10 is beyond EOD, truncated loop4: p43 start 10 is beyond EOD, truncated loop4: p44 start 10 is beyond EOD, truncated loop4: p45 start 10 is beyond EOD, truncated loop4: p46 start 10 is beyond EOD, truncated loop4: p47 start 10 is beyond EOD, truncated loop4: p48 start 10 is beyond EOD, truncated loop4: p49 start 10 is beyond EOD, truncated loop4: p50 start 10 is beyond EOD, truncated loop4: p51 start 10 is beyond EOD, truncated loop4: p52 start 10 is beyond EOD, truncated loop4: p53 start 10 is beyond EOD, truncated loop4: p54 start 10 is beyond EOD, truncated loop4: p55 start 10 is beyond EOD, truncated loop4: p56 start 10 is beyond EOD, truncated loop4: p57 start 10 is beyond EOD, truncated loop4: p58 start 10 is beyond EOD, truncated loop4: p59 start 10 is beyond EOD, truncated loop4: p60 start 10 is beyond EOD, truncated loop4: p61 start 10 is beyond EOD, truncated loop4: p62 start 10 is beyond EOD, truncated loop4: p63 start 10 is beyond EOD, truncated loop4: p64 start 10 is beyond EOD, truncated loop4: p65 start 10 is beyond EOD, truncated loop4: p66 start 10 is beyond EOD, truncated loop4: p67 start 10 is beyond EOD, truncated loop4: p68 start 10 is beyond EOD, truncated loop4: p69 start 10 is beyond EOD, truncated loop4: p70 start 10 is beyond EOD, truncated loop4: p71 start 10 is beyond EOD, truncated loop4: p72 start 10 is beyond EOD, truncated loop4: p73 start 10 is beyond EOD, truncated loop4: p74 start 10 is beyond EOD, truncated loop4: p75 start 10 is beyond EOD, truncated loop4: p76 start 10 is beyond EOD, truncated loop4: p77 start 10 is beyond EOD, truncated loop4: p78 start 10 is beyond EOD, truncated loop4: p79 start 10 is beyond EOD, truncated loop4: p80 start 10 is beyond EOD, truncated loop4: p81 start 10 is beyond EOD, truncated loop4: p82 start 10 is beyond EOD, truncated loop4: p83 start 10 is beyond EOD, truncated loop4: p84 start 10 is beyond EOD, truncated loop4: p85 start 10 is beyond EOD, truncated loop4: p86 start 10 is beyond EOD, truncated loop4: p87 start 10 is beyond EOD, truncated loop4: p88 start 10 is beyond EOD, truncated loop4: p89 start 10 is beyond EOD, truncated loop4: p90 start 10 is beyond EOD, truncated loop4: p91 start 10 is beyond EOD, truncated loop4: p92 start 10 is beyond EOD, truncated loop4: p93 start 10 is beyond EOD, truncated loop4: p94 start 10 is beyond EOD, truncated loop4: p95 start 10 is beyond EOD, truncated loop4: p96 start 10 is beyond EOD, truncated loop4: p97 start 10 is beyond EOD, truncated loop4: p98 start 10 is beyond EOD, truncated loop4: p99 start 10 is beyond EOD, truncated loop4: p100 start 10 is beyond EOD, truncated loop4: p101 start 10 is beyond EOD, truncated loop4: p102 start 10 is beyond EOD, truncated loop4: p103 start 10 is beyond EOD, truncated loop4: p104 start 10 is beyond EOD, truncated loop4: p105 start 10 is beyond EOD, truncated loop4: p106 start 10 is beyond EOD, truncated loop4: p107 start 10 is beyond EOD, truncated loop4: p108 start 10 is beyond EOD, truncated loop4: p109 start 10 is beyond EOD, truncated loop4: p110 start 10 is beyond EOD, truncated loop4: p111 start 10 is beyond EOD, truncated loop4: p112 start 10 is beyond EOD, truncated loop4: p113 start 10 is beyond EOD, truncated loop4: p114 start 10 is beyond EOD, truncated loop4: p115 start 10 is beyond EOD, truncated loop4: p116 start 10 is beyond EOD, truncated loop4: p117 start 10 is beyond EOD, truncated loop4: p118 start 10 is beyond EOD, truncated loop4: p119 start 10 is beyond EOD, truncated loop4: p120 start 10 is beyond EOD, truncated loop4: p121 start 10 is beyond EOD, truncated loop4: p122 start 10 is beyond EOD, truncated loop4: p123 start 10 is beyond EOD, truncated loop4: p124 start 10 is beyond EOD, truncated loop4: p125 start 10 is beyond EOD, truncated loop4: p126 start 10 is beyond EOD, truncated loop4: p127 start 10 is beyond EOD, truncated loop4: p128 start 10 is beyond EOD, truncated loop4: p129 start 10 is beyond EOD, truncated loop4: p130 start 10 is beyond EOD, truncated loop4: p131 start 10 is beyond EOD, truncated loop4: p132 start 10 is beyond EOD, truncated loop4: p133 start 10 is beyond EOD, truncated loop4: p134 start 10 is beyond EOD, truncated loop4: p135 start 10 is beyond EOD, truncated loop4: p136 start 10 is beyond EOD, truncated loop4: p137 start 10 is beyond EOD, truncated loop4: p138 start 10 is beyond EOD, truncated loop4: p139 start 10 is beyond EOD, truncated loop4: p140 start 10 is beyond EOD, truncated loop4: p141 start 10 is beyond EOD, truncated loop4: p142 start 10 is beyond EOD, truncated loop4: p143 start 10 is beyond EOD, truncated loop4: p144 start 10 is beyond EOD, truncated loop4: p145 start 10 is beyond EOD, truncated loop4: p146 start 10 is beyond EOD, truncated loop4: p147 start 10 is beyond EOD, truncated loop4: p148 start 10 is beyond EOD, truncated loop4: p149 start 10 is beyond EOD, truncated loop4: p150 start 10 is beyond EOD, truncated loop4: p151 start 10 is beyond EOD, truncated loop4: p152 start 10 is beyond EOD, truncated loop4: p153 start 10 is beyond EOD, truncated loop4: p154 start 10 is beyond EOD, truncated loop4: p155 start 10 is beyond EOD, truncated loop4: p156 start 10 is beyond EOD, truncated loop4: p157 start 10 is beyond EOD, truncated loop4: p158 start 10 is beyond EOD, truncated loop4: p159 start 10 is beyond EOD, truncated loop4: p160 start 10 is beyond EOD, truncated loop4: p161 start 10 is beyond EOD, truncated loop4: p162 start 10 is beyond EOD, truncated loop4: p163 start 10 is beyond EOD, truncated loop4: p164 start 10 is beyond EOD, truncated loop4: p165 start 10 is beyond EOD, truncated loop4: p166 start 10 is beyond EOD, truncated loop4: p167 start 10 is beyond EOD, truncated loop4: p168 start 10 is beyond EOD, truncated loop4: p169 start 10 is beyond EOD, truncated loop4: p170 start 10 is beyond EOD, truncated loop4: p171 start 10 is beyond EOD, truncated loop4: p172 start 10 is beyond EOD, truncated loop4: p173 start 10 is beyond EOD, truncated loop4: p174 start 10 is beyond EOD, truncated loop4: p175 start 10 is beyond EOD, truncated loop4: p176 start 10 is beyond EOD, truncated loop4: p177 start 10 is beyond EOD, truncated loop4: p178 start 10 is beyond EOD, truncated loop4: p179 start 10 is beyond EOD, truncated loop4: p180 start 10 is beyond EOD, truncated loop4: p181 start 10 is beyond EOD, truncated loop4: p182 start 10 is beyond EOD, truncated loop4: p183 start 10 is beyond EOD, truncated loop4: p184 start 10 is beyond EOD, truncated loop4: p185 start 10 is beyond EOD, truncated loop4: p186 start 10 is beyond EOD, truncated loop4: p187 start 10 is beyond EOD, truncated loop4: p188 start 10 is beyond EOD, truncated loop4: p189 start 10 is beyond EOD, truncated loop4: p190 start 10 is beyond EOD, truncated loop4: p191 start 10 is beyond EOD, truncated loop4: p192 start 10 is beyond EOD, truncated loop4: p193 start 10 is beyond EOD, truncated loop4: p194 start 10 is beyond EOD, truncated loop4: p195 start 10 is beyond EOD, truncated loop4: p196 start 10 is beyond EOD, truncated loop4: p197 start 10 is beyond EOD, truncated loop4: p198 start 10 is beyond EOD, truncated loop4: p199 start 10 is beyond EOD, truncated loop4: p200 start 10 is beyond EOD, truncated loop4: p201 start 10 is beyond EOD, truncated loop4: p202 start 10 is beyond EOD, truncated loop4: p203 start 10 is beyond EOD, truncated loop4: p204 start 10 is beyond EOD, truncated loop4: p205 start 10 is beyond EOD, truncated loop4: p206 start 10 is beyond EOD, truncated loop4: p207 start 10 is beyond EOD, truncated loop4: p208 start 10 is beyond EOD, truncated loop4: p209 start 10 is beyond EOD, truncated loop4: p210 start 10 is beyond EOD, truncated loop4: p211 start 10 is beyond EOD, truncated loop4: p212 start 10 is beyond EOD, truncated loop4: p213 start 10 is beyond EOD, truncated loop4: p214 start 10 is beyond EOD, truncated loop4: p215 start 10 is beyond EOD, truncated loop4: p216 start 10 is beyond EOD, truncated loop4: p217 start 10 is beyond EOD, truncated loop4: p218 start 10 is beyond EOD, truncated loop4: p219 start 10 is beyond EOD, truncated loop4: p220 start 10 is beyond EOD, truncated loop4: p221 start 10 is beyond EOD, truncated loop4: p222 start 10 is beyond EOD, truncated loop4: p223 start 10 is beyond EOD, truncated loop4: p224 start 10 is beyond EOD, truncated loop4: p225 start 10 is beyond EOD, truncated loop4: p226 start 10 is beyond EOD, truncated loop4: p227 start 10 is beyond EOD, truncated loop4: p228 start 10 is beyond EOD, truncated loop4: p229 start 10 is beyond EOD, truncated loop4: p230 start 10 is beyond EOD, truncated loop4: p231 start 10 is beyond EOD, truncated loop4: p232 start 10 is beyond EOD, truncated loop4: p233 start 10 is beyond EOD, truncated loop4: p234 start 10 is beyond EOD, truncated loop4: p235 start 10 is beyond EOD, truncated loop4: p236 start 10 is beyond EOD, truncated loop4: p237 start 10 is beyond EOD, truncated loop4: p238 start 10 is beyond EOD, truncated loop4: p239 start 10 is beyond EOD, truncated loop4: p240 start 10 is beyond EOD, truncated loop4: p241 start 10 is beyond EOD, truncated loop4: p242 start 10 is beyond EOD, truncated loop4: p243 start 10 is beyond EOD, truncated loop4: p244 start 10 is beyond EOD, truncated loop4: p245 start 10 is beyond EOD, truncated loop4: p246 start 10 is beyond EOD, truncated loop4: p247 start 10 is beyond EOD, truncated loop4: p248 start 10 is beyond EOD, truncated loop4: p249 start 10 is beyond EOD, truncated loop4: p250 start 10 is beyond EOD, truncated loop4: p251 start 10 is beyond EOD, truncated loop4: p252 start 10 is beyond EOD, truncated loop4: p253 start 10 is beyond EOD, truncated loop4: p254 start 10 is beyond EOD, truncated loop4: p255 start 10 is beyond EOD, truncated usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.1' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.1' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.3' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.1' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #33554432 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 usb usb1: usbfs: process 23673 (syz-executor.3) did not claim interface 0 before use usb usb1: usbfs: process 23675 (syz-executor.3) did not claim interface 0 before use FAT-fs (loop4): bogus number of reserved sectors FAT-fs (loop4): Can't find a valid FAT filesystem usb usb1: usbfs: interface 0 claimed by hub while 'syz-executor.0' sets config #0 FAT-fs (loop4): bogus number of reserved sectors device lo entered promiscuous mode FAT-fs (loop4): Can't find a valid FAT filesystem Y­4`Ò˜: renamed from lo 9pnet_virtio: no channels available for device 127.0.0.1 9pnet_virtio: no channels available for device 127.0.0.1 Bluetooth: hci6: Frame reassembly failed (-84) 9pnet_virtio: no channels available for device 127.0.0.1 9pnet_virtio: no channels available for device 127.0.0.1 Bluetooth: hci6 command 0x1003 tx timeout Bluetooth: hci6 sending frame failed (-49) Bluetooth: hci6 command 0x1001 tx timeout Bluetooth: hci6 sending frame failed (-49)