================================ WARNING: inconsistent lock state 5.5.0-next-20200207-syzkaller #0 Not tainted -------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. syz-executor.4/18819 [HC0[0]:SC1[1]:HE1:SE0] takes: ffff88809f4721c8 (&(&local->client_conns_lock)->rlock){+.?.}, at: spin_lock include/linux/spinlock.h:338 [inline] ffff88809f4721c8 (&(&local->client_conns_lock)->rlock){+.?.}, at: rxrpc_put_one_client_conn net/rxrpc/conn_client.c:948 [inline] ffff88809f4721c8 (&(&local->client_conns_lock)->rlock){+.?.}, at: rxrpc_put_client_conn+0x6ed/0xc90 net/rxrpc/conn_client.c:1001 {SOFTIRQ-ON-W} state was registered at: lock_acquire+0x190/0x410 kernel/locking/lockdep.c:4484 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] rxrpc_get_client_conn net/rxrpc/conn_client.c:304 [inline] rxrpc_connect_call+0x358/0x4e30 net/rxrpc/conn_client.c:701 rxrpc_new_client_call+0x9c0/0x1ad0 net/rxrpc/call_object.c:290 rxrpc_new_client_call_for_sendmsg net/rxrpc/sendmsg.c:595 [inline] rxrpc_do_sendmsg+0xffa/0x1d5f net/rxrpc/sendmsg.c:652 rxrpc_sendmsg+0x4d6/0x5f0 net/rxrpc/af_rxrpc.c:586 sock_sendmsg_nosec net/socket.c:652 [inline] sock_sendmsg+0xd7/0x130 net/socket.c:672 ____sys_sendmsg+0x358/0x880 net/socket.c:2343 ___sys_sendmsg+0x100/0x170 net/socket.c:2397 __sys_sendmmsg+0x1bf/0x4d0 net/socket.c:2487 __do_sys_sendmmsg net/socket.c:2516 [inline] __se_sys_sendmmsg net/socket.c:2513 [inline] __x64_sys_sendmmsg+0x9d/0x100 net/socket.c:2513 do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294 entry_SYSCALL_64_after_hwframe+0x49/0xbe irq event stamp: 21868 hardirqs last enabled at (21868): [] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline] hardirqs last enabled at (21868): [] _raw_spin_unlock_irqrestore+0x66/0xe0 kernel/locking/spinlock.c:191 hardirqs last disabled at (21867): [] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline] hardirqs last disabled at (21867): [] _raw_spin_lock_irqsave+0x6f/0xcd kernel/locking/spinlock.c:159 softirqs last enabled at (20448): [] __do_softirq+0x6cd/0x98c kernel/softirq.c:319 softirqs last disabled at (21623): [] invoke_softirq kernel/softirq.c:373 [inline] softirqs last disabled at (21623): [] irq_exit+0x19b/0x1e0 kernel/softirq.c:413 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&(&local->client_conns_lock)->rlock); lock(&(&local->client_conns_lock)->rlock); *** DEADLOCK *** 3 locks held by syz-executor.4/18819: #0: ffff88805b6bc0d8 (&type->s_umount_key#64/1){+.+.}, at: alloc_super+0x158/0x910 fs/super.c:229 #1: ffffffff89bac700 (rcu_read_lock){....}, at: is_bpf_text_address+0x0/0x160 kernel/bpf/core.c:692 #2: ffffffff89bac640 (rcu_callback){....}, at: rcu_do_batch kernel/rcu/tree.c:2176 [inline] #2: ffffffff89bac640 (rcu_callback){....}, at: rcu_core+0x562/0x1390 kernel/rcu/tree.c:2410 stack backtrace: CPU: 0 PID: 18819 Comm: syz-executor.4 Not tainted 5.5.0-next-20200207-syzkaller #0 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+0x197/0x210 lib/dump_stack.c:118 print_usage_bug.cold+0x327/0x378 kernel/locking/lockdep.c:3100 valid_state kernel/locking/lockdep.c:3111 [inline] mark_lock_irq kernel/locking/lockdep.c:3308 [inline] mark_lock+0xbb4/0x1220 kernel/locking/lockdep.c:3665 mark_usage kernel/locking/lockdep.c:3565 [inline] __lock_acquire+0x1e8e/0x4a00 kernel/locking/lockdep.c:3908 lock_acquire+0x190/0x410 kernel/locking/lockdep.c:4484 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] rxrpc_put_one_client_conn net/rxrpc/conn_client.c:948 [inline] rxrpc_put_client_conn+0x6ed/0xc90 net/rxrpc/conn_client.c:1001 rxrpc_put_connection net/rxrpc/ar-internal.h:965 [inline] rxrpc_rcu_destroy_call+0xbd/0x200 net/rxrpc/call_object.c:572 rcu_do_batch kernel/rcu/tree.c:2186 [inline] rcu_core+0x5e1/0x1390 kernel/rcu/tree.c:2410 rcu_core_si+0x9/0x10 kernel/rcu/tree.c:2419 __do_softirq+0x262/0x98c kernel/softirq.c:292 invoke_softirq kernel/softirq.c:373 [inline] irq_exit+0x19b/0x1e0 kernel/softirq.c:413 exiting_irq arch/x86/include/asm/apic.h:536 [inline] smp_apic_timer_interrupt+0x1a3/0x610 arch/x86/kernel/apic/apic.c:1137 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829 RIP: 0010:__lt_find include/linux/rbtree_latch.h:109 [inline] RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline] RIP: 0010:bpf_prog_kallsyms_find+0x8f/0x290 kernel/bpf/core.c:671 Code: 44 8b 65 c4 89 de 44 89 e7 e8 cd e3 f4 ff 41 39 dc 0f 84 62 01 00 00 e8 bf e2 f4 ff 8b 05 69 1b 20 08 89 c3 89 45 c4 83 e3 01 <4c> 8d 63 05 4a 8d 3c e5 c0 db a0 89 48 89 f8 48 c1 e8 03 42 80 3c RSP: 0018:ffffc9000f6bf220 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13 RAX: 000000000000015c RBX: 0000000000000000 RCX: ffffc90011500000 RDX: 0000000000040000 RSI: ffffffff8180c051 RDI: 0000000000000000 RBP: ffffc9000f6bf260 R08: ffff88809dc0e640 R09: ffffed1015d0707c R10: ffffed1015d0707b R11: ffff8880ae8383db R12: 0000000000000000 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88808f42f380 is_bpf_text_address+0x78/0x160 kernel/bpf/core.c:706 kernel_text_address+0x73/0x110 kernel/extable.c:150 __kernel_text_address+0xd/0x40 kernel/extable.c:104 unwind_get_return_address arch/x86/kernel/unwind_frame.c:19 [inline] unwind_get_return_address+0x61/0xa0 arch/x86/kernel/unwind_frame.c:14 arch_stack_walk+0x97/0xf0 arch/x86/kernel/stacktrace.c:26 stack_trace_save+0x8f/0xc0 kernel/stacktrace.c:123 save_stack+0x23/0x90 mm/kasan/common.c:72 set_track mm/kasan/common.c:80 [inline] __kasan_kmalloc mm/kasan/common.c:515 [inline] __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:488 kasan_slab_alloc+0xf/0x20 mm/kasan/common.c:523 slab_post_alloc_hook mm/slab.h:584 [inline] slab_alloc mm/slab.c:3320 [inline] kmem_cache_alloc+0x121/0x710 mm/slab.c:3484 kmem_cache_zalloc include/linux/slab.h:659 [inline] alloc_buffer_head+0x24/0xf0 fs/buffer.c:3437 alloc_page_buffers+0x16a/0x590 fs/buffer.c:871 grow_dev_page fs/buffer.c:1018 [inline] grow_buffers fs/buffer.c:1071 [inline] __getblk_slow fs/buffer.c:1104 [inline] __getblk_gfp+0x69f/0xed0 fs/buffer.c:1399 __bread_gfp+0x2f/0x370 fs/buffer.c:1433 sb_bread include/linux/buffer_head.h:307 [inline] fat__get_entry+0x563/0x9b0 fs/fat/dir.c:100 fat_get_entry fs/fat/dir.c:128 [inline] fat_get_short_entry+0x146/0x2f0 fs/fat/dir.c:877 fat_subdirs+0xc0/0x1a0 fs/fat/dir.c:943 fat_read_root fs/fat/inode.c:1417 [inline] fat_fill_super+0x24d5/0x39f0 fs/fat/inode.c:1863 vfat_fill_super+0x32/0x40 fs/fat/namei_vfat.c:1050 mount_bdev+0x304/0x3c0 fs/super.c:1417 vfat_mount+0x35/0x40 fs/fat/namei_vfat.c:1057 legacy_get_tree+0x108/0x220 fs/fs_context.c:622 vfs_get_tree+0x8e/0x300 fs/super.c:1547 do_new_mount fs/namespace.c:2822 [inline] do_mount+0x135a/0x1b50 fs/namespace.c:3107 __do_sys_mount fs/namespace.c:3316 [inline] __se_sys_mount fs/namespace.c:3293 [inline] __x64_sys_mount+0x192/0x230 fs/namespace.c:3293 do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x45ddea Code: b8 a6 00 00 00 0f 05 48 3d 01 f0 ff ff 0f 83 4d 8c fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 0f 83 2a 8c fb ff c3 66 0f 1f 84 00 00 00 00 00 RSP: 002b:00007f796bcc5a68 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 00007f796bcc66d4 RCX: 000000000045ddea RDX: 00007f796bcc5ae0 RSI: 00000000200004c0 RDI: 00007f796bcc5b00 RBP: 000000000075bf20 R08: 00007f796bcc5b40 R09: 00007f796bcc5ae0 R10: 0000000000000000 R11: 0000000000000202 R12: 00000000ffffffff R13: 0000000000000bb4 R14: 00000000004cc915 R15: 000000000075bf2c