=====================================================
WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
syzkaller #0 Tainted: G             L     
-----------------------------------------------------
syz.8.19331/21929 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
ffff88816f6257f8 (&new->fa_lock){...-}-{3:3}, at: kill_fasync+0x199/0x4d0

and this task is already holding:
ffff888167d7c028 (&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:
 (&dev->event_lock#2){..-.}-{3:3}

... which became SOFTIRQ-irq-safe at:
  lock_acquire+0xf0/0x2e0
  _raw_spin_lock_irqsave+0x40/0x60
  input_inject_event+0xa5/0x340
  led_trigger_event+0x138/0x210
  kbd_bh+0x1f3/0x300
  tasklet_action_common+0x2da/0x4b0
  handle_softirqs+0x22a/0x870
  run_ksoftirqd+0x36/0x60
  smpboot_thread_fn+0x541/0xa50
  kthread+0x388/0x470
  ret_from_fork+0x51e/0xb90
  ret_from_fork_asm+0x1a/0x30

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

... which became SOFTIRQ-irq-unsafe at:
...
  lock_acquire+0xf0/0x2e0
  _raw_read_lock+0x36/0x50
  __do_wait+0xde/0x740
  do_wait+0x1e7/0x540
  kernel_wait+0xd6/0x1c0
  call_usermodehelper_exec_work+0xbe/0x230
  process_scheduled_works+0xb6e/0x18c0
  worker_thread+0xa53/0xfc0
  kthread+0x388/0x470
  ret_from_fork+0x51e/0xb90
  ret_from_fork_asm+0x1a/0x30

other info that might help us debug this:

Chain exists of:
  &dev->event_lock#2 --> &client->buffer_lock --> tasklist_lock

 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(tasklist_lock);
                               local_irq_disable();
                               lock(&dev->event_lock#2);
                               lock(&client->buffer_lock);
  <Interrupt>
    lock(&dev->event_lock#2);

 *** DEADLOCK ***

7 locks held by syz.8.19331/21929:
 #0: ffff8881722cf118 (&evdev->mutex){+.+.}-{4:4}, at: evdev_write+0x1ae/0x4c0
 #1: ffff8881698cf230 (&dev->event_lock#2){..-.}-{3:3}, at: input_inject_event+0xa5/0x340
 #2: ffffffff8e75e5a0 (rcu_read_lock){....}-{1:3}, at: input_inject_event+0xb6/0x340
 #3: ffffffff8e75e5a0 (rcu_read_lock){....}-{1:3}, at: input_pass_values+0x8d/0x890
 #4: ffffffff8e75e5a0 (rcu_read_lock){....}-{1:3}, at: evdev_events+0x79/0x340
 #5: ffff888167d7c028 (&client->buffer_lock){....}-{3:3}, at: evdev_pass_values+0xb9/0xbd0
 #6: ffffffff8e75e5a0 (rcu_read_lock){....}-{1:3}, at: kill_fasync+0x53/0x4d0

the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
 -> (&dev->event_lock#2){..-.}-{3:3} {
    IN-SOFTIRQ-W at:
                      lock_acquire+0xf0/0x2e0
                      _raw_spin_lock_irqsave+0x40/0x60
                      input_inject_event+0xa5/0x340
                      led_trigger_event+0x138/0x210
                      kbd_bh+0x1f3/0x300
                      tasklet_action_common+0x2da/0x4b0
                      handle_softirqs+0x22a/0x870
                      run_ksoftirqd+0x36/0x60
                      smpboot_thread_fn+0x541/0xa50
                      kthread+0x388/0x470
                      ret_from_fork+0x51e/0xb90
                      ret_from_fork_asm+0x1a/0x30
    INITIAL USE at:
                     lock_acquire+0xf0/0x2e0
                     _raw_spin_lock_irqsave+0x40/0x60
                     input_inject_event+0xa5/0x340
                     kbd_led_trigger_activate+0xbc/0x100
                     led_trigger_set+0x535/0x960
                     led_trigger_set_default+0x260/0x2a0
                     led_classdev_register_ext+0x787/0x9c0
                     input_leds_connect+0x517/0x790
                     input_register_device+0xd00/0x1160
                     atkbd_connect+0x731/0xa50
                     serio_driver_probe+0x82/0xd0
                     really_probe+0x267/0xaf0
                     __driver_probe_device+0x18c/0x320
                     driver_probe_device+0x4f/0x240
                     __driver_attach+0x349/0x640
                     bus_for_each_dev+0x23b/0x2c0
                     serio_handle_event+0x20a/0xdd0
                     process_scheduled_works+0xb6e/0x18c0
                     worker_thread+0xa53/0xfc0
                     kthread+0x388/0x470
                     ret_from_fork+0x51e/0xb90
                     ret_from_fork_asm+0x1a/0x30
  }
  ... key      at: [<ffffffff9a606560>] input_allocate_device.__key.7+0x0/0x20
-> (&client->buffer_lock){....}-{3:3} {
   INITIAL USE at:
                   lock_acquire+0xf0/0x2e0
                   _raw_spin_lock+0x2e/0x40
                   evdev_pass_values+0xb9/0xbd0
                   evdev_events+0x1e6/0x340
                   input_pass_values+0x288/0x890
                   input_event_dispose+0x330/0x6b0
                   input_inject_event+0x1dd/0x340
                   evdev_write+0x325/0x4c0
                   vfs_write+0x29a/0xb90
                   ksys_write+0x150/0x270
                   do_syscall_64+0x14d/0xf80
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff9a606800>] evdev_open.__key.27+0x0/0x20
 ... acquired at:
   _raw_spin_lock+0x2e/0x40
   evdev_pass_values+0xb9/0xbd0
   evdev_events+0x1e6/0x340
   input_pass_values+0x288/0x890
   input_event_dispose+0x330/0x6b0
   input_inject_event+0x1dd/0x340
   evdev_write+0x325/0x4c0
   vfs_write+0x29a/0xb90
   ksys_write+0x150/0x270
   do_syscall_64+0x14d/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


the dependencies between the lock to be acquired
 and SOFTIRQ-irq-unsafe lock:
  -> (tasklist_lock){.+.+}-{3:3} {
     HARDIRQ-ON-R at:
                        lock_acquire+0xf0/0x2e0
                        _raw_read_lock+0x36/0x50
                        __do_wait+0xde/0x740
                        do_wait+0x1e7/0x540
                        kernel_wait+0xd6/0x1c0
                        call_usermodehelper_exec_work+0xbe/0x230
                        process_scheduled_works+0xb6e/0x18c0
                        worker_thread+0xa53/0xfc0
                        kthread+0x388/0x470
                        ret_from_fork+0x51e/0xb90
                        ret_from_fork_asm+0x1a/0x30
     SOFTIRQ-ON-R at:
                        lock_acquire+0xf0/0x2e0
                        _raw_read_lock+0x36/0x50
                        __do_wait+0xde/0x740
                        do_wait+0x1e7/0x540
                        kernel_wait+0xd6/0x1c0
                        call_usermodehelper_exec_work+0xbe/0x230
                        process_scheduled_works+0xb6e/0x18c0
                        worker_thread+0xa53/0xfc0
                        kthread+0x388/0x470
                        ret_from_fork+0x51e/0xb90
                        ret_from_fork_asm+0x1a/0x30
     INITIAL USE at:
                       lock_acquire+0xf0/0x2e0
                       _raw_write_lock_irq+0x3d/0x50
                       copy_process+0x247a/0x3cd0
                       kernel_clone+0x248/0x8e0
                       user_mode_thread+0x110/0x180
                       rest_init+0x23/0x300
                       start_kernel+0x385/0x3d0
                       x86_64_start_reservations+0x24/0x30
                       x86_64_start_kernel+0x143/0x1c0
                       common_startup_64+0x13e/0x147
     INITIAL READ USE at:
                            lock_acquire+0xf0/0x2e0
                            _raw_read_lock+0x36/0x50
                            __do_wait+0xde/0x740
                            do_wait+0x1e7/0x540
                            kernel_wait+0xd6/0x1c0
                            call_usermodehelper_exec_work+0xbe/0x230
                            process_scheduled_works+0xb6e/0x18c0
                            worker_thread+0xa53/0xfc0
                            kthread+0x388/0x470
                            ret_from_fork+0x51e/0xb90
                            ret_from_fork_asm+0x1a/0x30
   }
   ... key      at: [<ffffffff8e40c058>] tasklist_lock+0x18/0x40
   ... acquired at:
   _raw_read_lock+0x36/0x50
   send_sigio+0x101/0x370
   dnotify_handle_event+0x169/0x440
   fsnotify+0x1831/0x1ae0
   path_openat+0x15c2/0x3860
   do_file_open+0x23e/0x4a0
   do_sys_openat2+0x113/0x200
   __x64_sys_openat+0x138/0x170
   do_syscall_64+0x14d/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

 -> (&f_owner->lock){....}-{3:3} {
    INITIAL USE at:
                     lock_acquire+0xf0/0x2e0
                     _raw_write_lock_irq+0x3d/0x50
                     __f_setown+0x67/0x370
                     generic_setlease+0xacf/0xff0
                     do_fcntl_add_lease+0x35e/0x470
                     fcntl_setlease+0x123/0x180
                     do_fcntl+0x8b3/0x1a20
                     __se_sys_fcntl+0xc8/0x150
                     do_syscall_64+0x14d/0xf80
                     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    INITIAL READ USE at:
                          lock_acquire+0xf0/0x2e0
                          _raw_read_lock_irqsave+0x48/0x60
                          send_sigio+0x38/0x370
                          kill_fasync+0x24d/0x4d0
                          lease_break_callback+0x26/0x30
                          __break_lease+0x81c/0x1e80
                          do_dentry_open+0x1010/0x14e0
                          vfs_open+0x3b/0x340
                          path_openat+0x2e08/0x3860
                          do_file_open+0x23e/0x4a0
                          do_sys_openat2+0x113/0x200
                          __x64_sys_creat+0x8f/0xc0
                          do_syscall_64+0x14d/0xf80
                          entry_SYSCALL_64_after_hwframe+0x77/0x7f
  }
  ... key      at: [<ffffffff9a2e71e0>] file_f_owner_allocate.__key+0x0/0x20
  ... acquired at:
   _raw_read_lock_irqsave+0x48/0x60
   send_sigio+0x38/0x370
   kill_fasync+0x24d/0x4d0
   lease_break_callback+0x26/0x30
   __break_lease+0x81c/0x1e80
   do_dentry_open+0x1010/0x14e0
   vfs_open+0x3b/0x340
   path_openat+0x2e08/0x3860
   do_file_open+0x23e/0x4a0
   do_sys_openat2+0x113/0x200
   __x64_sys_creat+0x8f/0xc0
   do_syscall_64+0x14d/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> (&new->fa_lock){...-}-{3:3} {
   IN-SOFTIRQ-R at:
                    lock_acquire+0xf0/0x2e0
                    _raw_read_lock_irqsave+0x48/0x60
                    kill_fasync+0x199/0x4d0
                    sock_wake_async+0x137/0x160
                    sock_def_readable+0x3c1/0x580
                    tcp_data_queue+0x1e2e/0x5e50
                    tcp_rcv_established+0xf45/0x2740
                    tcp_v4_do_rcv+0xa90/0x1430
                    tcp_v4_rcv+0x2825/0x31f0
                    ip_protocol_deliver_rcu+0x221/0x440
                    ip_local_deliver_finish+0x3bb/0x6f0
                    NF_HOOK+0x336/0x3c0
                    NF_HOOK+0x336/0x3c0
                    process_backlog+0xaa3/0x1950
                    __napi_poll+0xae/0x340
                    net_rx_action+0x627/0xf70
                    handle_softirqs+0x22a/0x870
                    do_softirq+0x76/0xd0
                    __local_bh_enable_ip+0xf8/0x130
                    sk_stream_wait_memory+0x72b/0xf80
                    tcp_sendmsg_locked+0x23ba/0x5390
                    tcp_sendmsg+0x2f/0x50
                    __sys_sendto+0x5de/0x710
                    __x64_sys_sendto+0xde/0x100
                    do_syscall_64+0x14d/0xf80
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL USE at:
                   lock_acquire+0xf0/0x2e0
                   _raw_write_lock_irq+0x3d/0x50
                   fasync_remove_entry+0xf1/0x1c0
                   pipe_fasync+0xa9/0x1e0
                   __fput+0x8a5/0xa70
                   task_work_run+0x1d9/0x270
                   exit_to_user_mode_loop+0xed/0x480
                   do_syscall_64+0x32d/0xf80
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL READ USE at:
                        lock_acquire+0xf0/0x2e0
                        _raw_read_lock_irqsave+0x48/0x60
                        kill_fasync+0x199/0x4d0
                        sock_wake_async+0x137/0x160
                        af_alg_wmem_wakeup+0x3c0/0x440
                        aead_recvmsg+0x13f7/0x1460
                        sock_recvmsg+0x172/0x1b0
                        sock_read_iter+0x251/0x320
                        vfs_read+0x582/0xa70
                        ksys_read+0x150/0x270
                        do_syscall_64+0x14d/0xf80
                        entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff9a2e7200>] fasync_insert_entry.__key+0x0/0x20
 ... acquired at:
   _raw_read_lock_irqsave+0x48/0x60
   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+0x325/0x4c0
   vfs_write+0x29a/0xb90
   ksys_write+0x150/0x270
   do_syscall_64+0x14d/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


stack backtrace:
CPU: 1 UID: 0 PID: 21929 Comm: syz.8.19331 Tainted: G             L      syzkaller #0 PREEMPT(full) 
Tainted: [L]=SOFTLOCKUP
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+0xe8/0x150
 __lock_acquire+0x2a94/0x2cf0
 lock_acquire+0xf0/0x2e0
 _raw_read_lock_irqsave+0x48/0x60
 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+0x325/0x4c0
 vfs_write+0x29a/0xb90
 ksys_write+0x150/0x270
 do_syscall_64+0x14d/0xf80
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fba7319c799
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 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 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fba73fcc028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007fba73415fa0 RCX: 00007fba7319c799
RDX: 0000000000001068 RSI: 0000200000000040 RDI: 0000000000000004
RBP: 00007fba73232c99 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fba73416038 R14: 00007fba73415fa0 R15: 00007fff3e131ee8
 </TASK>
