iwpm_register_pid: Unable to send a nlmsg (client = 2) ====================================================== WARNING: possible circular locking dependency detected 6.14.0-syzkaller-05877-g1a9239bb4253 #0 Not tainted ------------------------------------------------------ syz.2.154/6422 is trying to acquire lock: ffff88807b7e3558 (sk_lock-AF_INET){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1615 [inline] ffff88807b7e3558 (sk_lock-AF_INET){+.+.}-{0:0}, at: sock_set_reuseaddr+0x17/0x60 net/core/sock.c:788 but task is already holding lock: ffffffff8fe6e248 (lock#7){+.+.}-{4:4}, at: cma_add_one+0x6c1/0xce0 drivers/infiniband/core/cma.c:5370 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (lock#7){+.+.}-{4:4}: lock_acquire+0x116/0x2f0 kernel/locking/lockdep.c:5866 __mutex_lock_common kernel/locking/mutex.c:587 [inline] __mutex_lock+0x1bf/0x1000 kernel/locking/mutex.c:732 cma_init+0x1e/0x140 drivers/infiniband/core/cma.c:5454 do_one_initcall+0x24a/0x940 init/main.c:1257 do_initcall_level+0x157/0x210 init/main.c:1319 do_initcalls+0x71/0xd0 init/main.c:1335 kernel_init_freeable+0x432/0x5d0 init/main.c:1567 kernel_init+0x1d/0x2b0 init/main.c:1457 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:153 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 -> #2 (rtnl_mutex){+.+.}-{4:4}: lock_acquire+0x116/0x2f0 kernel/locking/lockdep.c:5866 __mutex_lock_common kernel/locking/mutex.c:587 [inline] __mutex_lock+0x1bf/0x1000 kernel/locking/mutex.c:732 ip_mroute_setsockopt+0x161/0x11f0 net/ipv4/ipmr.c:1396 do_ip_setsockopt+0x1114/0x39c0 net/ipv4/ip_sockglue.c:948 ip_setsockopt+0x63/0x100 net/ipv4/ip_sockglue.c:1417 smc_setsockopt+0x25c/0xd50 net/smc/af_smc.c:3081 do_sock_setsockopt+0x3b1/0x710 net/socket.c:2296 __sys_setsockopt net/socket.c:2321 [inline] __do_sys_setsockopt net/socket.c:2327 [inline] __se_sys_setsockopt net/socket.c:2324 [inline] __x64_sys_setsockopt+0x1ee/0x280 net/socket.c:2324 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #1 (&smc->clcsock_release_lock){+.+.}-{4:4}: lock_acquire+0x116/0x2f0 kernel/locking/lockdep.c:5866 __mutex_lock_common kernel/locking/mutex.c:587 [inline] __mutex_lock+0x1bf/0x1000 kernel/locking/mutex.c:732 smc_switch_to_fallback+0x35/0xda0 net/smc/af_smc.c:903 smc_sendmsg+0x11f/0x530 net/smc/af_smc.c:2781 sock_sendmsg_nosec net/socket.c:712 [inline] __sock_sendmsg+0x221/0x270 net/socket.c:727 __sys_sendto+0x365/0x4c0 net/socket.c:2180 __do_sys_sendto net/socket.c:2187 [inline] __se_sys_sendto net/socket.c:2183 [inline] __x64_sys_sendto+0xde/0x100 net/socket.c:2183 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (sk_lock-AF_INET){+.+.}-{0:0}: check_prev_add kernel/locking/lockdep.c:3166 [inline] check_prevs_add kernel/locking/lockdep.c:3285 [inline] validate_chain+0xa69/0x24e0 kernel/locking/lockdep.c:3909 __lock_acquire+0xad5/0xd80 kernel/locking/lockdep.c:5235 lock_acquire+0x116/0x2f0 kernel/locking/lockdep.c:5866 lock_sock_nested+0x48/0x100 net/core/sock.c:3697 lock_sock include/net/sock.h:1615 [inline] sock_set_reuseaddr+0x17/0x60 net/core/sock.c:788 siw_create_listen+0x19f/0x1250 drivers/infiniband/sw/siw/siw_cm.c:1777 iw_cm_listen+0x15e/0x230 drivers/infiniband/core/iwcm.c:585 cma_iw_listen drivers/infiniband/core/cma.c:2684 [inline] rdma_listen+0xb51/0xe40 drivers/infiniband/core/cma.c:3969 cma_listen_on_dev+0x3e0/0x6f0 drivers/infiniband/core/cma.c:2743 cma_add_one+0x7dc/0xce0 drivers/infiniband/core/cma.c:5373 add_client_context+0x53e/0x8b0 drivers/infiniband/core/device.c:711 enable_device_and_get+0x1de/0x450 drivers/infiniband/core/device.c:1322 ib_register_device+0x1138/0x1460 drivers/infiniband/core/device.c:1433 siw_device_register drivers/infiniband/sw/siw/siw_main.c:72 [inline] siw_newlink+0x938/0xda0 drivers/infiniband/sw/siw/siw_main.c:431 nldev_newlink+0x5ee/0x680 drivers/infiniband/core/nldev.c:1795 rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline] rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline] rdma_nl_rcv+0x6e5/0x9e0 drivers/infiniband/core/netlink.c:259 netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline] netlink_unicast+0x7f8/0x9a0 net/netlink/af_netlink.c:1339 netlink_sendmsg+0x8c3/0xcd0 net/netlink/af_netlink.c:1883 sock_sendmsg_nosec net/socket.c:712 [inline] __sock_sendmsg+0x221/0x270 net/socket.c:727 ____sys_sendmsg+0x523/0x860 net/socket.c:2566 ___sys_sendmsg net/socket.c:2620 [inline] __sys_sendmsg+0x271/0x360 net/socket.c:2652 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f other info that might help us debug this: Chain exists of: sk_lock-AF_INET --> rtnl_mutex --> lock#7 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(lock#7); lock(rtnl_mutex); lock(lock#7); lock(sk_lock-AF_INET); *** DEADLOCK *** 6 locks held by syz.2.154/6422: #0: ffffffff9aaa62b8 (&rdma_nl_types[idx].sem){.+.+}-{4:4}, at: rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:164 [inline] #0: ffffffff9aaa62b8 (&rdma_nl_types[idx].sem){.+.+}-{4:4}, at: rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline] #0: ffffffff9aaa62b8 (&rdma_nl_types[idx].sem){.+.+}-{4:4}, at: rdma_nl_rcv+0x32f/0x9e0 drivers/infiniband/core/netlink.c:259 #1: ffffffff8fe5a410 (link_ops_rwsem){++++}-{4:4}, at: nldev_newlink+0x458/0x680 drivers/infiniband/core/nldev.c:1785 #2: ffffffff8fe4d0b0 (devices_rwsem){++++}-{4:4}, at: enable_device_and_get+0x130/0x450 drivers/infiniband/core/device.c:1312 #3: ffffffff8fe4d3b0 (clients_rwsem){++++}-{4:4}, at: enable_device_and_get+0x18e/0x450 drivers/infiniband/core/device.c:1320 #4: ffff8880599d85e0 (&device->client_data_rwsem){++++}-{4:4}, at: add_client_context+0x4fa/0x8b0 drivers/infiniband/core/device.c:709 #5: ffffffff8fe6e248 (lock#7){+.+.}-{4:4}, at: cma_add_one+0x6c1/0xce0 drivers/infiniband/core/cma.c:5370 stack backtrace: CPU: 1 UID: 0 PID: 6422 Comm: syz.2.154 Not tainted 6.14.0-syzkaller-05877-g1a9239bb4253 #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_circular_bug+0x2e1/0x300 kernel/locking/lockdep.c:2079 check_noncircular+0x142/0x160 kernel/locking/lockdep.c:2211 check_prev_add kernel/locking/lockdep.c:3166 [inline] check_prevs_add kernel/locking/lockdep.c:3285 [inline] validate_chain+0xa69/0x24e0 kernel/locking/lockdep.c:3909 __lock_acquire+0xad5/0xd80 kernel/locking/lockdep.c:5235 lock_acquire+0x116/0x2f0 kernel/locking/lockdep.c:5866 lock_sock_nested+0x48/0x100 net/core/sock.c:3697 lock_sock include/net/sock.h:1615 [inline] sock_set_reuseaddr+0x17/0x60 net/core/sock.c:788 siw_create_listen+0x19f/0x1250 drivers/infiniband/sw/siw/siw_cm.c:1777 iw_cm_listen+0x15e/0x230 drivers/infiniband/core/iwcm.c:585 cma_iw_listen drivers/infiniband/core/cma.c:2684 [inline] rdma_listen+0xb51/0xe40 drivers/infiniband/core/cma.c:3969 cma_listen_on_dev+0x3e0/0x6f0 drivers/infiniband/core/cma.c:2743 cma_add_one+0x7dc/0xce0 drivers/infiniband/core/cma.c:5373 add_client_context+0x53e/0x8b0 drivers/infiniband/core/device.c:711 enable_device_and_get+0x1de/0x450 drivers/infiniband/core/device.c:1322 ib_register_device+0x1138/0x1460 drivers/infiniband/core/device.c:1433 siw_device_register drivers/infiniband/sw/siw/siw_main.c:72 [inline] siw_newlink+0x938/0xda0 drivers/infiniband/sw/siw/siw_main.c:431 nldev_newlink+0x5ee/0x680 drivers/infiniband/core/nldev.c:1795 rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline] rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline] rdma_nl_rcv+0x6e5/0x9e0 drivers/infiniband/core/netlink.c:259 netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline] netlink_unicast+0x7f8/0x9a0 net/netlink/af_netlink.c:1339 netlink_sendmsg+0x8c3/0xcd0 net/netlink/af_netlink.c:1883 sock_sendmsg_nosec net/socket.c:712 [inline] __sock_sendmsg+0x221/0x270 net/socket.c:727 ____sys_sendmsg+0x523/0x860 net/socket.c:2566 ___sys_sendmsg net/socket.c:2620 [inline] __sys_sendmsg+0x271/0x360 net/socket.c:2652 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fbaba58d169 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fbabb337038 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00007fbaba7a5fa0 RCX: 00007fbaba58d169 RDX: 0000000000000810 RSI: 0000200000000240 RDI: 0000000000000003 RBP: 00007fbaba60e2a0 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000000 R14: 00007fbaba7a5fa0 R15: 00007ffd7f7a89e8 infiniband syz2: RDMA CMA: cma_listen_on_dev, error -98 lo speed is unknown, defaulting to 1000 lo speed is unknown, defaulting to 1000 lo speed is unknown, defaulting to 1000 lo speed is unknown, defaulting to 1000 lo speed is unknown, defaulting to 1000 lo speed is unknown, defaulting to 1000