=====================================================
WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
6.16.0-syzkaller-11895-gcca7a0aae895-dirty #0 Not tainted
-----------------------------------------------------
syz.5.3029/14035 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
ffff888107eff168 (&new->fa_lock){....}-{3:3}, at: kill_fasync+0x199/0x4d0

and this task is already holding:
ffff88811fc1e028 (&client->buffer_lock){..-.}-{3:3}, at: evdev_pass_values+0xb9/0xbd0
which would create a new lock dependency:
 (&client->buffer_lock){..-.}-{3:3} -> (&new->fa_lock){....}-{3:3}

but this new dependency connects a SOFTIRQ-irq-safe lock:
 (&client->buffer_lock){..-.}-{3:3}

... which became SOFTIRQ-irq-safe at:
  lock_acquire+0x120/0x360
  _raw_spin_lock+0x2e/0x40
  evdev_pass_values+0xb9/0xbd0
  evdev_events+0x1e6/0x340
  input_pass_values+0x288/0x890
  input_event_dispose+0x3e5/0x6b0
  input_event+0x89/0xe0
  hidinput_hid_event+0x132c/0x1c90
  hid_process_event+0x4be/0x620
  hid_report_raw_event+0xe91/0x16d0
  hid_input_report+0x43e/0x520
  hid_irq_in+0x47e/0x6d0
  __usb_hcd_giveback_urb+0x41a/0x690
  dummy_timer+0x862/0x4550
  __hrtimer_run_queues+0x52c/0xc60
  hrtimer_run_softirq+0x187/0x2b0
  handle_softirqs+0x286/0x870
  __irq_exit_rcu+0xca/0x1f0
  irq_exit_rcu+0x9/0x30
  sysvec_call_function_single+0xa3/0xc0
  asm_sysvec_call_function_single+0x1a/0x20
  rcu_is_watching+0x44/0xb0
  lock_acquire+0x5f/0x360
  unwind_next_frame+0xc2/0x2390
  arch_stack_walk+0x11c/0x150
  stack_trace_save+0x9c/0xe0
  kasan_save_stack+0x3e/0x60
  kasan_record_aux_stack+0xbd/0xd0
  call_rcu+0x157/0x9c0
  kmem_cache_free+0x309/0x400
  vms_complete_munmap_vmas+0x626/0x8a0
  mmap_region+0x11db/0x20c0
  do_mmap+0xc45/0x10d0
  vm_mmap_pgoff+0x2a6/0x4d0
  do_syscall_64+0xfa/0x3b0
  entry_SYSCALL_64_after_hwframe+0x77/0x7f

to a SOFTIRQ-irq-unsafe lock:
 (tasklist_lock){.+.+}-{3:3}

... which became SOFTIRQ-irq-unsafe at:
...
  lock_acquire+0x120/0x360
  _raw_read_lock+0x36/0x50
  __do_wait+0xde/0x740
  do_wait+0x1f8/0x520
  kernel_wait+0xab/0x170
  call_usermodehelper_exec_work+0xbe/0x230
  process_scheduled_works+0xae1/0x17b0
  worker_thread+0x8a0/0xda0
  kthread+0x711/0x8a0
  ret_from_fork+0x3fc/0x770
  ret_from_fork_asm+0x1a/0x30

other info that might help us debug this:

Chain exists of:
  &client->buffer_lock --> &new->fa_lock --> tasklist_lock

 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(tasklist_lock);
                               local_irq_disable();
                               lock(&client->buffer_lock);
                               lock(&new->fa_lock);
  <Interrupt>
    lock(&client->buffer_lock);

 *** DEADLOCK ***

7 locks held by syz.5.3029/14035:
 #0: ffff8881364ae918 (&evdev->mutex){+.+.}-{4:4}, at: evdev_write+0x1a1/0x480
 #1: ffff88801f565230 (&dev->event_lock#2){..-.}-{3:3}, at: input_inject_event+0xa5/0x340
 #2: ffffffff8e139ee0 (rcu_read_lock){....}-{1:3}, at: input_inject_event+0xb6/0x340
 #3: ffffffff8e139ee0 (rcu_read_lock){....}-{1:3}, at: input_pass_values+0x8d/0x890
 #4: ffffffff8e139ee0 (rcu_read_lock){....}-{1:3}, at: evdev_events+0x79/0x340
 #5: ffff88811fc1e028 (&client->buffer_lock){..-.}-{3:3}, at: evdev_pass_values+0xb9/0xbd0
 #6: ffffffff8e139ee0 (rcu_read_lock){....}-{1:3}, at: kill_fasync+0x53/0x4d0

the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
-> (&client->buffer_lock){..-.}-{3:3} {
   IN-SOFTIRQ-W at:
                    lock_acquire+0x120/0x360
                    _raw_spin_lock+0x2e/0x40
                    evdev_pass_values+0xb9/0xbd0
                    evdev_events+0x1e6/0x340
                    input_pass_values+0x288/0x890
                    input_event_dispose+0x3e5/0x6b0
                    input_event+0x89/0xe0
                    hidinput_hid_event+0x132c/0x1c90
                    hid_process_event+0x4be/0x620
                    hid_report_raw_event+0xe91/0x16d0
                    hid_input_report+0x43e/0x520
                    hid_irq_in+0x47e/0x6d0
                    __usb_hcd_giveback_urb+0x41a/0x690
                    dummy_timer+0x862/0x4550
                    __hrtimer_run_queues+0x52c/0xc60
                    hrtimer_run_softirq+0x187/0x2b0
                    handle_softirqs+0x286/0x870
                    __irq_exit_rcu+0xca/0x1f0
                    irq_exit_rcu+0x9/0x30
                    sysvec_call_function_single+0xa3/0xc0
                    asm_sysvec_call_function_single+0x1a/0x20
                    rcu_is_watching+0x44/0xb0
                    lock_acquire+0x5f/0x360
                    unwind_next_frame+0xc2/0x2390
                    arch_stack_walk+0x11c/0x150
                    stack_trace_save+0x9c/0xe0
                    kasan_save_stack+0x3e/0x60
                    kasan_record_aux_stack+0xbd/0xd0
                    call_rcu+0x157/0x9c0
                    kmem_cache_free+0x309/0x400
                    vms_complete_munmap_vmas+0x626/0x8a0
                    mmap_region+0x11db/0x20c0
                    do_mmap+0xc45/0x10d0
                    vm_mmap_pgoff+0x2a6/0x4d0
                    do_syscall_64+0xfa/0x3b0
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL USE at:
                   lock_acquire+0x120/0x360
                   _raw_spin_lock+0x2e/0x40
                   evdev_pass_values+0xb9/0xbd0
                   evdev_events+0x1e6/0x340
                   input_pass_values+0x288/0x890
                   input_event_dispose+0x3e5/0x6b0
                   input_event+0x89/0xe0
                   hidinput_hid_event+0x132c/0x1c90
                   hid_process_event+0x4be/0x620
                   hid_report_raw_event+0xe91/0x16d0
                   hid_input_report+0x43e/0x520
                   hid_irq_in+0x47e/0x6d0
                   __usb_hcd_giveback_urb+0x41a/0x690
                   dummy_timer+0x862/0x4550
                   __hrtimer_run_queues+0x52c/0xc60
                   hrtimer_run_softirq+0x187/0x2b0
                   handle_softirqs+0x286/0x870
                   __irq_exit_rcu+0xca/0x1f0
                   irq_exit_rcu+0x9/0x30
                   sysvec_call_function_single+0xa3/0xc0
                   asm_sysvec_call_function_single+0x1a/0x20
                   rcu_is_watching+0x44/0xb0
                   lock_acquire+0x5f/0x360
                   unwind_next_frame+0xc2/0x2390
                   arch_stack_walk+0x11c/0x150
                   stack_trace_save+0x9c/0xe0
                   kasan_save_stack+0x3e/0x60
                   kasan_record_aux_stack+0xbd/0xd0
                   call_rcu+0x157/0x9c0
                   kmem_cache_free+0x309/0x400
                   vms_complete_munmap_vmas+0x626/0x8a0
                   mmap_region+0x11db/0x20c0
                   do_mmap+0xc45/0x10d0
                   vm_mmap_pgoff+0x2a6/0x4d0
                   do_syscall_64+0xfa/0x3b0
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff99e22300>] evdev_open.__key.25+0x0/0x20

the dependencies between the lock to be acquired
 and SOFTIRQ-irq-unsafe lock:
  -> (tasklist_lock){.+.+}-{3:3} {
     HARDIRQ-ON-R at:
                        lock_acquire+0x120/0x360
                        _raw_read_lock+0x36/0x50
                        __do_wait+0xde/0x740
                        do_wait+0x1f8/0x520
                        kernel_wait+0xab/0x170
                        call_usermodehelper_exec_work+0xbe/0x230
                        process_scheduled_works+0xae1/0x17b0
                        worker_thread+0x8a0/0xda0
                        kthread+0x711/0x8a0
                        ret_from_fork+0x3fc/0x770
                        ret_from_fork_asm+0x1a/0x30
     SOFTIRQ-ON-R at:
                        lock_acquire+0x120/0x360
                        _raw_read_lock+0x36/0x50
                        __do_wait+0xde/0x740
                        do_wait+0x1f8/0x520
                        kernel_wait+0xab/0x170
                        call_usermodehelper_exec_work+0xbe/0x230
                        process_scheduled_works+0xae1/0x17b0
                        worker_thread+0x8a0/0xda0
                        kthread+0x711/0x8a0
                        ret_from_fork+0x3fc/0x770
                        ret_from_fork_asm+0x1a/0x30
     INITIAL USE at:
                       lock_acquire+0x120/0x360
                       _raw_write_lock_irq+0xa2/0xf0
                       copy_process+0x224f/0x3c00
                       kernel_clone+0x21e/0x840
                       user_mode_thread+0xdd/0x140
                       rest_init+0x23/0x300
                       start_kernel+0x3a9/0x410
                       x86_64_start_reservations+0x24/0x30
                       x86_64_start_kernel+0x143/0x1c0
                       common_startup_64+0x13e/0x147
     INITIAL READ USE at:
                            lock_acquire+0x120/0x360
                            _raw_read_lock+0x36/0x50
                            __do_wait+0xde/0x740
                            do_wait+0x1f8/0x520
                            kernel_wait+0xab/0x170
                            call_usermodehelper_exec_work+0xbe/0x230
                            process_scheduled_works+0xae1/0x17b0
                            worker_thread+0x8a0/0xda0
                            kthread+0x711/0x8a0
                            ret_from_fork+0x3fc/0x770
                            ret_from_fork_asm+0x1a/0x30
   }
   ... key      at: [<ffffffff8de0c058>] tasklist_lock+0x18/0x40
   ... acquired at:
   lock_acquire+0x120/0x360
   _raw_read_lock+0x36/0x50
   send_sigurg+0x12b/0x420
   sk_send_sigurg+0x6c/0x2e0
   tcp_check_urg+0x200/0x760
   tcp_urg+0x164/0x3f0
   tcp_rcv_established+0xf93/0x1eb0
   tcp_v4_do_rcv+0xa23/0xce0
   __release_sock+0x21c/0x350
   release_sock+0x5f/0x1f0
   tcp_sendmsg+0x39/0x50
   __sock_sendmsg+0x19c/0x270
   __sys_sendto+0x3bd/0x520
   __x64_sys_sendto+0xde/0x100
   do_syscall_64+0xfa/0x3b0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

 -> (&f_owner->lock){....}-{3:3} {
    INITIAL USE at:
                     lock_acquire+0x120/0x360
                     _raw_write_lock_irq+0xa2/0xf0
                     __f_setown+0x67/0x370
                     generic_setlease+0xd60/0x1240
                     fcntl_setlease+0x3a2/0x4c0
                     do_fcntl+0x6a9/0x1910
                     __se_sys_fcntl+0xc8/0x150
                     do_syscall_64+0xfa/0x3b0
                     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    INITIAL READ USE at:
                          lock_acquire+0x120/0x360
                          _raw_read_lock_irqsave+0xaf/0x100
                          send_sigurg+0x55/0x420
                          sk_send_sigurg+0x6c/0x2e0
                          tcp_check_urg+0x200/0x760
                          tcp_urg+0x164/0x3f0
                          tcp_rcv_established+0xf93/0x1eb0
                          tcp_v4_do_rcv+0xa23/0xce0
                          __release_sock+0x21c/0x350
                          release_sock+0x5f/0x1f0
                          tcp_sendmsg+0x39/0x50
                          __sock_sendmsg+0x19c/0x270
                          __sys_sendto+0x3bd/0x520
                          __x64_sys_sendto+0xde/0x100
                          do_syscall_64+0xfa/0x3b0
                          entry_SYSCALL_64_after_hwframe+0x77/0x7f
  }
  ... key      at: [<ffffffff99b22f60>] file_f_owner_allocate.__key+0x0/0x20
  ... acquired at:
   lock_acquire+0x120/0x360
   _raw_read_lock_irqsave+0xaf/0x100
   send_sigio+0x38/0x370
   kill_fasync+0x24d/0x4d0
   sock_wake_async+0x137/0x160
   sk_wake_async+0x184/0x280
   unix_release_sock+0x768/0xd30
   unix_release+0x92/0xd0
   sock_close+0xc3/0x240
   __fput+0x44c/0xa70
   task_work_run+0x1d4/0x260
   get_signal+0x11ed/0x1340
   arch_do_signal_or_restart+0x9a/0x750
   exit_to_user_mode_loop+0x75/0x110
   do_syscall_64+0x2bd/0x3b0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> (&new->fa_lock){....}-{3:3} {
   INITIAL USE at:
                   lock_acquire+0x120/0x360
                   _raw_write_lock_irq+0xa2/0xf0
                   fasync_remove_entry+0xf1/0x1c0
                   lease_modify+0x1ca/0x3c0
                   locks_remove_file+0x4bf/0xea0
                   __fput+0x3ab/0xa70
                   task_work_run+0x1d4/0x260
                   exit_to_user_mode_loop+0xec/0x110
                   do_syscall_64+0x2bd/0x3b0
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL READ USE at:
                        lock_acquire+0x120/0x360
                        _raw_read_lock_irqsave+0xaf/0x100
                        kill_fasync+0x199/0x4d0
                        sock_wake_async+0x137/0x160
                        sk_wake_async+0x184/0x280
                        mptcp_destroy_common+0x152/0x320
                        mptcp_disconnect+0x23d/0x700
                        __inet_stream_connect+0x6be/0xe80
                        inet_stream_connect+0x66/0xa0
                        __sys_connect+0x316/0x440
                        __x64_sys_connect+0x7a/0x90
                        do_syscall_64+0xfa/0x3b0
                        entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff99b22f80>] fasync_insert_entry.__key+0x0/0x20
 ... acquired at:
   lock_acquire+0x120/0x360
   _raw_read_lock_irqsave+0xaf/0x100
   kill_fasync+0x199/0x4d0
   evdev_pass_values+0x627/0xbd0
   evdev_events+0x1e6/0x340
   input_pass_values+0x288/0x890
   input_event_dispose+0x330/0x6b0
   input_inject_event+0x1dd/0x340
   evdev_write+0x2fc/0x480
   vfs_write+0x27e/0xa90
   ksys_write+0x145/0x250
   do_syscall_64+0xfa/0x3b0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


stack backtrace:
CPU: 1 UID: 0 PID: 14035 Comm: syz.5.3029 Not tainted 6.16.0-syzkaller-11895-gcca7a0aae895-dirty #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250
 validate_chain+0x1f05/0x2140
 __lock_acquire+0xab9/0xd20
 lock_acquire+0x120/0x360
 _raw_read_lock_irqsave+0xaf/0x100
 kill_fasync+0x199/0x4d0
 evdev_pass_values+0x627/0xbd0
 evdev_events+0x1e6/0x340
 input_pass_values+0x288/0x890
 input_event_dispose+0x330/0x6b0
 input_inject_event+0x1dd/0x340
 evdev_write+0x2fc/0x480
 vfs_write+0x27e/0xa90
 ksys_write+0x145/0x250
 do_syscall_64+0xfa/0x3b0
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f5d8178ebe9
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:00007f5d826a3038 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f5d819b5fa0 RCX: 00007f5d8178ebe9
RDX: 0000000000001068 RSI: 0000200000000040 RDI: 0000000000000004
RBP: 00007f5d81811e19 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f5d819b6038 R14: 00007f5d819b5fa0 R15: 00007ffd668363b8
 </TASK>
