========================================================
WARNING: possible irq lock inversion dependency detected
6.1.0-rc5-syzkaller-00181-gbac81f40c2c1 #0 Not tainted
--------------------------------------------------------
syz-executor.3/3692 just changed the state of lock:
ffff888017977778 (k-clock-AF_INET){+++.}-{2:2}, at: l2tp_tunnel_register+0x132/0x11e0
but this lock was taken by another, SOFTIRQ-safe lock in the past:
 (&tcp_hashinfo.bhash[i].lock){+.-.}-{2:2}


and interrupts could create inverse lock ordering between them.


other info that might help us debug this:
 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(k-clock-AF_INET);
                               local_irq_disable();
                               lock(&tcp_hashinfo.bhash[i].lock);
                               lock(k-clock-AF_INET);
  <Interrupt>
    lock(&tcp_hashinfo.bhash[i].lock);

 *** DEADLOCK ***

2 locks held by syz-executor.3/3692:
 #0: ffffffff8df67830 (cb_lock){++++}-{3:3}, at: genl_rcv+0x19/0x40
 #1: ffffffff8df678e8 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg+0x507/0x770

the shortest dependencies between 2nd lock and 1st lock:
 -> (&tcp_hashinfo.bhash[i].lock){+.-.}-{2:2} {
    HARDIRQ-ON-W at:
                      lock_acquire+0x1e0/0x610
                      _raw_spin_lock_bh+0x33/0x40
                      inet_csk_get_port+0x7af/0x2310
                      __inet6_bind+0x102a/0x1e60
                      inet6_bind+0x173/0x220
                      rds_tcp_listen_init+0x2af/0x4f0
                      rds_tcp_init_net+0x21d/0x4f0
                      ops_init+0xb9/0x620
                      register_pernet_operations+0x34b/0x820
                      register_pernet_device+0x29/0x70
                      rds_tcp_init+0x61/0xcb
                      do_one_initcall+0x13f/0x760
                      kernel_init_freeable+0x70f/0x796
                      kernel_init+0x1c/0x1d0
                      ret_from_fork+0x1f/0x30
    IN-SOFTIRQ-W at:
                      lock_acquire+0x1e0/0x610
                      _raw_spin_lock+0x2e/0x40
                      __inet_inherit_port+0x293/0x14e0
                      tcp_v4_syn_recv_sock+0xb4d/0x14a0
                      tcp_check_req+0x970/0x1f60
                      tcp_v4_rcv+0x273e/0x3ca0
                      ip_protocol_deliver_rcu+0x9f/0x7d0
                      ip_local_deliver_finish+0x2e6/0x4c0
                      ip_local_deliver+0x1be/0x4f0
                      ip_sublist_rcv_finish+0x99/0x2d0
                      ip_sublist_rcv+0x53a/0x990
                      ip_list_rcv+0x318/0x420
                      __netif_receive_skb_list_core+0x52c/0x8a0
                      netif_receive_skb_list_internal+0x76b/0xdd0
                      napi_complete_done+0x1f2/0x8d0
                      virtnet_poll+0xd38/0x13e0
                      __napi_poll.constprop.0+0xb0/0x440
                      net_rx_action+0x8f8/0xd50
                      __do_softirq+0x1f7/0xaf6
                      __irq_exit_rcu+0xeb/0x190
                      irq_exit_rcu+0x9/0x20
                      common_interrupt+0xae/0xd0
                      asm_common_interrupt+0x26/0x40
                      kmem_cache_free+0x256/0x4c0
                      kfree_skbmem+0xef/0x1b0
                      consume_skb+0xd3/0x160
                      __unix_dgram_recvmsg+0x723/0xb90
                      unix_dgram_recvmsg+0xc3/0xf0
                      sock_read_iter+0x344/0x450
                      vfs_read+0x81b/0x950
                      ksys_read+0x1f0/0x250
                      do_syscall_64+0x38/0xb0
                      entry_SYSCALL_64_after_hwframe+0x63/0xcd
    INITIAL USE at:
                     lock_acquire+0x1e0/0x610
                     _raw_spin_lock_bh+0x33/0x40
                     inet_csk_get_port+0x7af/0x2310
                     __inet6_bind+0x102a/0x1e60
                     inet6_bind+0x173/0x220
                     rds_tcp_listen_init+0x2af/0x4f0
                     rds_tcp_init_net+0x21d/0x4f0
                     ops_init+0xb9/0x620
                     register_pernet_operations+0x34b/0x820
                     register_pernet_device+0x29/0x70
                     rds_tcp_init+0x61/0xcb
                     do_one_initcall+0x13f/0x760
                     kernel_init_freeable+0x70f/0x796
                     kernel_init+0x1c/0x1d0
                     ret_from_fork+0x1f/0x30
  }
  ... key      at: [<ffffffff91d4eb40>] __key.1+0x0/0x40
  ... acquired at:
   _raw_read_lock_bh+0x3f/0x70
   sock_i_uid+0x1f/0xb0
   inet_bhash2_addr_any_conflict+0x2d/0x450
   inet_csk_get_port+0x1be0/0x2310
   __inet_bind+0x5b5/0xc70
   inet_bind+0x173/0x220
   smc_bind+0x2f8/0x3a0
   __sys_bind+0x1d4/0x200
   __x64_sys_bind+0x72/0xb0
   do_syscall_64+0x38/0xb0
   entry_SYSCALL_64_after_hwframe+0x63/0xcd

-> (k-clock-AF_INET){+++.}-{2:2} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x1e0/0x610
                    _raw_write_lock_bh+0x33/0x40
                    __tcp_close+0x448/0xf90
                    tcp_close+0x2d/0xc0
                    inet_release+0x132/0x270
                    sock_release+0x8b/0x1b0
                    smc_clcsock_release+0xb7/0xe0
                    __smc_release+0x5b9/0x890
                    smc_release+0x209/0x640
                    __sock_release+0xcd/0x280
                    sock_close+0x1c/0x20
                    __fput+0x26a/0xa40
                    task_work_run+0x14d/0x240
                    exit_to_user_mode_prepare+0x23c/0x250
                    syscall_exit_to_user_mode+0x1d/0x50
                    do_syscall_64+0x44/0xb0
                    entry_SYSCALL_64_after_hwframe+0x63/0xcd
   HARDIRQ-ON-R at:
                    lock_acquire+0x1e0/0x610
                    _raw_read_lock_bh+0x3f/0x70
                    sock_i_uid+0x1f/0xb0
                    udp_lib_lport_inuse+0x32/0x4a0
                    udp_lib_get_port+0x84e/0x1900
                    __inet_bind+0x5b5/0xc70
                    inet_bind+0x173/0x220
                    udp_sock_create4+0x1c0/0x430
                    rxe_setup_udp_tunnel.constprop.0+0xe4/0x1d0
                    rxe_net_init+0x1d/0xc0
                    rxe_module_init+0xf/0x44
                    do_one_initcall+0x13f/0x760
                    kernel_init_freeable+0x70f/0x796
                    kernel_init+0x1c/0x1d0
                    ret_from_fork+0x1f/0x30
   SOFTIRQ-ON-W at:
                    lock_acquire+0x1e0/0x610
                    _raw_write_lock+0x2e/0x40
                    l2tp_tunnel_register+0x132/0x11e0
                    l2tp_nl_cmd_tunnel_create+0x3d1/0x8e0
                    genl_family_rcv_msg_doit+0x223/0x320
                    genl_rcv_msg+0x43c/0x770
                    netlink_rcv_skb+0x158/0x420
                    genl_rcv+0x28/0x40
                    netlink_unicast+0x530/0x800
                    netlink_sendmsg+0x8f8/0xe00
                    sock_sendmsg+0xcd/0x120
                    ____sys_sendmsg+0x663/0x8d0
                    ___sys_sendmsg+0x11d/0x1b0
                    __sys_sendmsg+0xfa/0x1d0
                    do_syscall_64+0x38/0xb0
                    entry_SYSCALL_64_after_hwframe+0x63/0xcd
   INITIAL USE at:
                   lock_acquire+0x1e0/0x610
                   _raw_write_lock_bh+0x33/0x40
                   __tcp_close+0x448/0xf90
                   tcp_close+0x2d/0xc0
                   inet_release+0x132/0x270
                   sock_release+0x8b/0x1b0
                   smc_clcsock_release+0xb7/0xe0
                   __smc_release+0x5b9/0x890
                   smc_release+0x209/0x640
                   __sock_release+0xcd/0x280
                   sock_close+0x1c/0x20
                   __fput+0x26a/0xa40
                   task_work_run+0x14d/0x240
                   exit_to_user_mode_prepare+0x23c/0x250
                   syscall_exit_to_user_mode+0x1d/0x50
                   do_syscall_64+0x44/0xb0
                   entry_SYSCALL_64_after_hwframe+0x63/0xcd
   INITIAL READ USE at:
                        lock_acquire+0x1e0/0x610
                        _raw_read_lock_bh+0x3f/0x70
                        sock_i_uid+0x1f/0xb0
                        udp_lib_lport_inuse+0x32/0x4a0
                        udp_lib_get_port+0x84e/0x1900
                        __inet_bind+0x5b5/0xc70
                        inet_bind+0x173/0x220
                        udp_sock_create4+0x1c0/0x430
                        rxe_setup_udp_tunnel.constprop.0+0xe4/0x1d0
                        rxe_net_init+0x1d/0xc0
                        rxe_module_init+0xf/0x44
                        do_one_initcall+0x13f/0x760
                        kernel_init_freeable+0x70f/0x796
                        kernel_init+0x1c/0x1d0
                        ret_from_fork+0x1f/0x30
 }
 ... key      at: [<ffffffff91d2e340>] af_kern_callback_keys+0x20/0x300
 ... acquired at:
   __lock_acquire+0x8a0/0x5640
   lock_acquire+0x1e0/0x610
   _raw_write_lock+0x2e/0x40
   l2tp_tunnel_register+0x132/0x11e0
   l2tp_nl_cmd_tunnel_create+0x3d1/0x8e0
   genl_family_rcv_msg_doit+0x223/0x320
   genl_rcv_msg+0x43c/0x770
   netlink_rcv_skb+0x158/0x420
   genl_rcv+0x28/0x40
   netlink_unicast+0x530/0x800
   netlink_sendmsg+0x8f8/0xe00
   sock_sendmsg+0xcd/0x120
   ____sys_sendmsg+0x663/0x8d0
   ___sys_sendmsg+0x11d/0x1b0
   __sys_sendmsg+0xfa/0x1d0
   do_syscall_64+0x38/0xb0
   entry_SYSCALL_64_after_hwframe+0x63/0xcd


stack backtrace:
CPU: 0 PID: 3692 Comm: syz-executor.3 Not tainted 6.1.0-rc5-syzkaller-00181-gbac81f40c2c1 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Call Trace:
 <TASK>
 dump_stack_lvl+0x100/0x178
 mark_lock.cold+0x1b/0x5f
 __lock_acquire+0x8a0/0x5640
 lock_acquire+0x1e0/0x610
 _raw_write_lock+0x2e/0x40
 l2tp_tunnel_register+0x132/0x11e0
 l2tp_nl_cmd_tunnel_create+0x3d1/0x8e0
 genl_family_rcv_msg_doit+0x223/0x320
 genl_rcv_msg+0x43c/0x770
 netlink_rcv_skb+0x158/0x420
 genl_rcv+0x28/0x40
 netlink_unicast+0x530/0x800
 netlink_sendmsg+0x8f8/0xe00
 sock_sendmsg+0xcd/0x120
 ____sys_sendmsg+0x663/0x8d0
 ___sys_sendmsg+0x11d/0x1b0
 __sys_sendmsg+0xfa/0x1d0
 do_syscall_64+0x38/0xb0
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7f334ea7be39
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 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f334f7e10c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007f334eb9bf80 RCX: 00007f334ea7be39
RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000003
RBP: 00007f334ead8ad0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000000b R14: 00007f334eb9bf80 R15: 00007ffc7951e518
 </TASK>
