================================ WARNING: inconsistent lock state 4.14.290-syzkaller #0 Not tainted -------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. ksoftirqd/1/18 [HC0[0]:SC1[5]:HE1:SE0] takes: (&(&xprt->transport_lock)->rlock){+.?.}, at: [] spin_lock_bh include/linux/spinlock.h:322 [inline] (&(&xprt->transport_lock)->rlock){+.?.}, at: [] xprt_disconnect_done+0x19/0x40 net/sunrpc/xprt.c:664 {SOFTIRQ-ON-W} state was registered at: lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:152 spin_lock include/linux/spinlock.h:317 [inline] xprt_destroy+0x68/0x1c0 net/sunrpc/xprt.c:1528 xprt_destroy_kref net/sunrpc/xprt.c:1542 [inline] kref_put include/linux/kref.h:70 [inline] xprt_put+0x32/0x40 net/sunrpc/xprt.c:1566 xprt_switch_free_entries net/sunrpc/xprtmultipath.c:124 [inline] xprt_switch_free net/sunrpc/xprtmultipath.c:135 [inline] kref_put include/linux/kref.h:70 [inline] xprt_switch_put+0x1ae/0x290 net/sunrpc/xprtmultipath.c:161 rpc_free_client+0x105/0x190 net/sunrpc/clnt.c:885 rpc_free_auth net/sunrpc/clnt.c:910 [inline] rpc_release_client+0xc4/0x130 net/sunrpc/clnt.c:927 rpcb_getport_async+0x6f3/0xba0 net/sunrpc/rpcb_clnt.c:790 call_bind+0x140/0x1a0 net/sunrpc/clnt.c:1797 __rpc_execute+0x1cf/0xc90 net/sunrpc/sched.c:783 rpc_execute+0x273/0x350 net/sunrpc/sched.c:851 rpc_run_task+0x473/0x630 net/sunrpc/clnt.c:1064 rpc_call_sync+0x93/0x140 net/sunrpc/clnt.c:1093 rpc_ping+0xa4/0xf0 net/sunrpc/clnt.c:2520 rpc_create_xprt+0x299/0x340 net/sunrpc/clnt.c:479 rpc_create+0x2db/0x4f0 net/sunrpc/clnt.c:587 nfs_create_rpc_client+0x2ec/0x3b0 fs/nfs/client.c:528 nfs_init_client fs/nfs/client.c:639 [inline] nfs_init_client+0x62/0xf0 fs/nfs/client.c:626 nfs_get_client+0xdc2/0x10c0 fs/nfs/client.c:430 nfs_init_server+0x21d/0xd20 fs/nfs/client.c:675 nfs_create_server+0x7a/0x490 fs/nfs/client.c:958 nfs_try_mount+0x122/0x750 fs/nfs/super.c:1879 nfs_fs_mount+0x1530/0x2b10 fs/nfs/super.c:2692 mount_fs+0x92/0x2a0 fs/super.c:1237 vfs_kern_mount.part.0+0x5b/0x470 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2572 [inline] do_mount+0xe65/0x2a30 fs/namespace.c:2905 SYSC_mount fs/namespace.c:3121 [inline] SyS_mount+0xa8/0x120 fs/namespace.c:3098 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb irq event stamp: 1105202 hardirqs last enabled at (1105202): [] __local_bh_enable_ip+0xc1/0x170 kernel/softirq.c:190 hardirqs last disabled at (1105201): [] __local_bh_enable_ip+0x89/0x170 kernel/softirq.c:167 softirqs last enabled at (1105144): [] __do_softirq+0x68b/0x9ff kernel/softirq.c:314 softirqs last disabled at (1105155): [] run_ksoftirqd+0x50/0x1a0 kernel/softirq.c:670 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&(&xprt->transport_lock)->rlock); lock(&(&xprt->transport_lock)->rlock); *** DEADLOCK *** 4 locks held by ksoftirqd/1/18: #0: (rcu_read_lock){....}, at: [] __write_once_size include/linux/compiler.h:212 [inline] #0: (rcu_read_lock){....}, at: [] __skb_unlink include/linux/skbuff.h:1918 [inline] #0: (rcu_read_lock){....}, at: [] __skb_dequeue include/linux/skbuff.h:1934 [inline] #0: (rcu_read_lock){....}, at: [] process_backlog+0x1c2/0x6f0 net/core/dev.c:5193 #1: (rcu_read_lock){....}, at: [] __skb_pull include/linux/skbuff.h:2151 [inline] #1: (rcu_read_lock){....}, at: [] ip_local_deliver_finish+0x12a/0xab0 net/ipv4/ip_input.c:194 #2: (slock-AF_INET-RPC){+.-.}, at: [] spin_lock include/linux/spinlock.h:317 [inline] #2: (slock-AF_INET-RPC){+.-.}, at: [] tcp_v4_err+0x3d8/0x1820 net/ipv4/tcp_ipv4.c:404 #3: (k-clock-AF_INET){++.-}, at: [] xs_tcp_state_change+0x25/0x7e0 net/sunrpc/xprtsock.c:1568 stack backtrace: CPU: 1 PID: 18 Comm: ksoftirqd/1 Not tainted 4.14.290-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/22/2022 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0x1b2/0x281 lib/dump_stack.c:58 print_usage_bug.cold+0x42e/0x570 kernel/locking/lockdep.c:2589 valid_state kernel/locking/lockdep.c:2602 [inline] mark_lock_irq kernel/locking/lockdep.c:2796 [inline] mark_lock+0xb4d/0x1050 kernel/locking/lockdep.c:3194 mark_irqflags kernel/locking/lockdep.c:3072 [inline] __lock_acquire+0xc81/0x3f20 kernel/locking/lockdep.c:3448 lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline] _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:176 spin_lock_bh include/linux/spinlock.h:322 [inline] xprt_disconnect_done+0x19/0x40 net/sunrpc/xprt.c:664 xs_sock_mark_closed net/sunrpc/xprtsock.c:811 [inline] xs_tcp_state_change+0x3c4/0x7e0 net/sunrpc/xprtsock.c:1637 tcp_done+0x14f/0x210 net/ipv4/tcp.c:3427 tcp_v4_err+0x7dd/0x1820 net/ipv4/tcp_ipv4.c:523 icmp_socket_deliver+0x1a7/0x330 net/ipv4/icmp.c:838 icmp_unreach+0x268/0xae0 net/ipv4/icmp.c:955 icmp_rcv+0xb7f/0x1240 net/ipv4/icmp.c:1136 ip_local_deliver_finish+0x3f2/0xab0 net/ipv4/ip_input.c:216 NF_HOOK include/linux/netfilter.h:250 [inline] ip_local_deliver+0x167/0x460 net/ipv4/ip_input.c:257 dst_input include/net/dst.h:476 [inline] ip_rcv_finish+0x6e3/0x19f0 net/ipv4/ip_input.c:396 NF_HOOK include/linux/netfilter.h:250 [inline] ip_rcv+0x8a7/0xf10 net/ipv4/ip_input.c:493 __netif_receive_skb_core+0x15ee/0x2a30 net/core/dev.c:4474 __netif_receive_skb+0x27/0x1a0 net/core/dev.c:4512 process_backlog+0x218/0x6f0 net/core/dev.c:5195 napi_poll net/core/dev.c:5604 [inline] net_rx_action+0x466/0xfd0 net/core/dev.c:5670 __do_softirq+0x24d/0x9ff kernel/softirq.c:288 run_ksoftirqd+0x50/0x1a0 kernel/softirq.c:670 smpboot_thread_fn+0x5c1/0x920 kernel/smpboot.c:164 kthread+0x30d/0x420 kernel/kthread.c:232 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404 unregister_netdevice: waiting for ip6gre0 to become free. Usage count = -1