====================================================== WARNING: possible circular locking dependency detected 6.12.0-rc1-syzkaller-00010-gc05ad457ce8c #0 Not tainted ------------------------------------------------------ syz.1.182/4602 is trying to acquire lock: ff6000001bdfc5d8 (sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1609 [inline] ff6000001bdfc5d8 (sk_lock-AF_INET6){+.+.}-{0:0}, at: sock_set_reuseaddr+0x1c/0x6e net/core/sock.c:783 but task is already holding lock: ffffffff89071da8 (lock#6){+.+.}-{3:3}, at: cma_add_one+0x5ae/0xf16 drivers/infiniband/core/cma.c:5354 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (lock#6){+.+.}-{3:3}: lock_acquire.part.0+0x2c6/0x81c kernel/locking/lockdep.c:5825 lock_acquire+0x74/0x98 kernel/locking/lockdep.c:5798 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x150/0x1022 kernel/locking/mutex.c:752 mutex_lock_nested+0x14/0x1c kernel/locking/mutex.c:804 cma_init+0x2e/0x1a0 drivers/infiniband/core/cma.c:5438 do_one_initcall+0x19a/0x988 init/main.c:1269 do_initcall_level init/main.c:1331 [inline] do_initcalls init/main.c:1347 [inline] do_basic_setup init/main.c:1366 [inline] kernel_init_freeable+0x6ec/0x792 init/main.c:1580 kernel_init+0x28/0x226 init/main.c:1469 ret_from_fork+0xe/0x18 arch/riscv/kernel/entry.S:326 -> #1 (rtnl_mutex){+.+.}-{3:3}: lock_acquire.part.0+0x2c6/0x81c kernel/locking/lockdep.c:5825 lock_acquire+0x74/0x98 kernel/locking/lockdep.c:5798 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x150/0x1022 kernel/locking/mutex.c:752 mutex_lock_nested+0x14/0x1c kernel/locking/mutex.c:804 rtnl_lock+0x22/0x2a net/core/rtnetlink.c:79 smc_vlan_by_tcpsk+0x264/0x560 net/smc/smc_core.c:1898 __smc_connect+0x432/0x4aa4 net/smc/af_smc.c:1518 smc_connect+0x5d4/0x702 net/smc/af_smc.c:1694 __sys_connect_file+0x146/0x186 net/socket.c:2066 __sys_connect+0x14c/0x18a net/socket.c:2083 __do_sys_connect net/socket.c:2093 [inline] __se_sys_connect net/socket.c:2090 [inline] __riscv_sys_connect+0x6e/0xa0 net/socket.c:2090 syscall_handler+0x94/0x118 arch/riscv/include/asm/syscall.h:90 do_trap_ecall_u+0x1aa/0x216 arch/riscv/kernel/traps.c:331 _new_vmalloc_restore_context_a0+0xc2/0xce -> #0 (sk_lock-AF_INET6){+.+.}-{0:0}: check_noncircular+0x2ba/0x354 kernel/locking/lockdep.c:2206 check_prev_add kernel/locking/lockdep.c:3161 [inline] check_prevs_add kernel/locking/lockdep.c:3280 [inline] validate_chain kernel/locking/lockdep.c:3904 [inline] __lock_acquire+0x2d00/0x8320 kernel/locking/lockdep.c:5202 lock_acquire.part.0+0x2c6/0x81c kernel/locking/lockdep.c:5825 lock_acquire+0x74/0x98 kernel/locking/lockdep.c:5798 lock_sock_nested+0x38/0xf6 net/core/sock.c:3611 lock_sock include/net/sock.h:1609 [inline] sock_set_reuseaddr+0x1c/0x6e net/core/sock.c:783 siw_create_listen+0x1b0/0x1120 drivers/infiniband/sw/siw/siw_cm.c:1776 iw_cm_listen+0x166/0x1e0 drivers/infiniband/core/iwcm.c:585 cma_iw_listen drivers/infiniband/core/cma.c:2668 [inline] rdma_listen+0x6dc/0xc12 drivers/infiniband/core/cma.c:3953 cma_listen_on_dev+0x444/0x71a drivers/infiniband/core/cma.c:2727 cma_add_one+0x6a6/0xf16 drivers/infiniband/core/cma.c:5357 add_client_context+0x3d2/0x570 drivers/infiniband/core/device.c:727 enable_device_and_get+0x1d8/0x418 drivers/infiniband/core/device.c:1338 ib_register_device drivers/infiniband/core/device.c:1449 [inline] ib_register_device+0x7e8/0xcd2 drivers/infiniband/core/device.c:1395 siw_device_register drivers/infiniband/sw/siw/siw_main.c:72 [inline] siw_newlink drivers/infiniband/sw/siw/siw_main.c:452 [inline] siw_newlink+0xb60/0xf04 drivers/infiniband/sw/siw/siw_main.c:428 nldev_newlink+0x338/0x59a drivers/infiniband/core/nldev.c:1795 rdma_nl_rcv_msg+0x352/0x680 drivers/infiniband/core/netlink.c:195 rdma_nl_rcv_skb.constprop.0.isra.0+0x328/0x424 drivers/infiniband/core/netlink.c:239 rdma_nl_rcv+0x1a/0x24 drivers/infiniband/core/netlink.c:259 netlink_unicast_kernel net/netlink/af_netlink.c:1331 [inline] netlink_unicast+0x4f0/0x82c net/netlink/af_netlink.c:1357 netlink_sendmsg+0x864/0xdc6 net/netlink/af_netlink.c:1901 sock_sendmsg_nosec net/socket.c:729 [inline] __sock_sendmsg+0xcc/0x160 net/socket.c:744 ____sys_sendmsg+0x5ce/0x79e net/socket.c:2602 ___sys_sendmsg+0x144/0x1e6 net/socket.c:2656 __sys_sendmsg+0x130/0x1f0 net/socket.c:2685 __do_sys_sendmsg net/socket.c:2694 [inline] __se_sys_sendmsg net/socket.c:2692 [inline] __riscv_sys_sendmsg+0x70/0xa2 net/socket.c:2692 syscall_handler+0x94/0x118 arch/riscv/include/asm/syscall.h:90 do_trap_ecall_u+0x1aa/0x216 arch/riscv/kernel/traps.c:331 _new_vmalloc_restore_context_a0+0xc2/0xce other info that might help us debug this: Chain exists of: sk_lock-AF_INET6 --> rtnl_mutex --> lock#6 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(lock#6); lock(rtnl_mutex); lock(lock#6); lock(sk_lock-AF_INET6); *** DEADLOCK *** 6 locks held by syz.1.182/4602: #0: ffffffff90b8cd38 (&rdma_nl_types[idx].sem){.+.+}-{3:3}, at: rdma_nl_rcv_msg+0x172/0x680 drivers/infiniband/core/netlink.c:164 #1: ffffffff8905a5f0 (link_ops_rwsem){++++}-{3:3}, at: nldev_newlink+0x292/0x59a drivers/infiniband/core/nldev.c:1785 #2: ffffffff89045cd0 (devices_rwsem){++++}-{3:3}, at: enable_device_and_get+0x12a/0x418 drivers/infiniband/core/device.c:1328 #3: ffffffff89045d90 (clients_rwsem){++++}-{3:3}, at: enable_device_and_get+0x180/0x418 drivers/infiniband/core/device.c:1336 #4: ff60000024c505d0 (&device->client_data_rwsem){++++}-{3:3}, at: add_client_context+0x3a6/0x570 drivers/infiniband/core/device.c:725 #5: ffffffff89071da8 (lock#6){+.+.}-{3:3}, at: cma_add_one+0x5ae/0xf16 drivers/infiniband/core/cma.c:5354 stack backtrace: CPU: 0 UID: 0 PID: 4602 Comm: syz.1.182 Not tainted 6.12.0-rc1-syzkaller-00010-gc05ad457ce8c #0 Hardware name: riscv-virtio,qemu (DT) Call Trace: [] dump_backtrace+0x2e/0x3c arch/riscv/kernel/stacktrace.c:130 [] show_stack+0x34/0x40 arch/riscv/kernel/stacktrace.c:136 [] __dump_stack lib/dump_stack.c:94 [inline] [] dump_stack_lvl+0x122/0x196 lib/dump_stack.c:120 [] dump_stack+0x1c/0x24 lib/dump_stack.c:129 [] print_circular_bug+0x6be/0x748 kernel/locking/lockdep.c:2074 [] check_noncircular+0x2ba/0x354 kernel/locking/lockdep.c:2206 [] check_prev_add kernel/locking/lockdep.c:3161 [inline] [] check_prevs_add kernel/locking/lockdep.c:3280 [inline] [] validate_chain kernel/locking/lockdep.c:3904 [inline] [] __lock_acquire+0x2d00/0x8320 kernel/locking/lockdep.c:5202 [] lock_acquire.part.0+0x2c6/0x81c kernel/locking/lockdep.c:5825 [] lock_acquire+0x74/0x98 kernel/locking/lockdep.c:5798 [] lock_sock_nested+0x38/0xf6 net/core/sock.c:3611 [] lock_sock include/net/sock.h:1609 [inline] [] sock_set_reuseaddr+0x1c/0x6e net/core/sock.c:783 [] siw_create_listen+0x1b0/0x1120 drivers/infiniband/sw/siw/siw_cm.c:1776 [] iw_cm_listen+0x166/0x1e0 drivers/infiniband/core/iwcm.c:585 [] cma_iw_listen drivers/infiniband/core/cma.c:2668 [inline] [] rdma_listen+0x6dc/0xc12 drivers/infiniband/core/cma.c:3953 [] cma_listen_on_dev+0x444/0x71a drivers/infiniband/core/cma.c:2727 [] cma_add_one+0x6a6/0xf16 drivers/infiniband/core/cma.c:5357 [] add_client_context+0x3d2/0x570 drivers/infiniband/core/device.c:727 [] enable_device_and_get+0x1d8/0x418 drivers/infiniband/core/device.c:1338 [] ib_register_device drivers/infiniband/core/device.c:1449 [inline] [] ib_register_device+0x7e8/0xcd2 drivers/infiniband/core/device.c:1395 [] siw_device_register drivers/infiniband/sw/siw/siw_main.c:72 [inline] [] siw_newlink drivers/infiniband/sw/siw/siw_main.c:452 [inline] [] siw_newlink+0xb60/0xf04 drivers/infiniband/sw/siw/siw_main.c:428 [] nldev_newlink+0x338/0x59a drivers/infiniband/core/nldev.c:1795 [] rdma_nl_rcv_msg+0x352/0x680 drivers/infiniband/core/netlink.c:195 [] rdma_nl_rcv_skb.constprop.0.isra.0+0x328/0x424 drivers/infiniband/core/netlink.c:239 [] rdma_nl_rcv+0x1a/0x24 drivers/infiniband/core/netlink.c:259 [] netlink_unicast_kernel net/netlink/af_netlink.c:1331 [inline] [] netlink_unicast+0x4f0/0x82c net/netlink/af_netlink.c:1357 [] netlink_sendmsg+0x864/0xdc6 net/netlink/af_netlink.c:1901 [] sock_sendmsg_nosec net/socket.c:729 [inline] [] __sock_sendmsg+0xcc/0x160 net/socket.c:744 [] ____sys_sendmsg+0x5ce/0x79e net/socket.c:2602 [] ___sys_sendmsg+0x144/0x1e6 net/socket.c:2656 [] __sys_sendmsg+0x130/0x1f0 net/socket.c:2685 [] __do_sys_sendmsg net/socket.c:2694 [inline] [] __se_sys_sendmsg net/socket.c:2692 [inline] [] __riscv_sys_sendmsg+0x70/0xa2 net/socket.c:2692 [] syscall_handler+0x94/0x118 arch/riscv/include/asm/syscall.h:90 [] do_trap_ecall_u+0x1aa/0x216 arch/riscv/kernel/traps.c:331 [] _new_vmalloc_restore_context_a0+0xc2/0xce infiniband syz2: RDMA CMA: cma_listen_on_dev, error -98 lo speed is unknown, defaulting to 1000 lo speed is unknown, defaulting to 1000