=====================================================
WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
syzkaller #0 Tainted: G             L     
-----------------------------------------------------
syz.8.33163/19980 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
ffffffff8e00c058 (tasklist_lock){.+.+}-{3:3}, at: send_sigio+0x101/0x370

and this task is already holding:
ffff88810a2dc220 (&f_owner->lock){....}-{3:3}, at: send_sigio+0x38/0x370
which would create a new lock dependency:
 (&f_owner->lock){....}-{3:3} -> (tasklist_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+0x106/0x330
  _raw_spin_lock_irqsave+0x40/0x60
  input_event+0x76/0xe0
  hidinput_report_event+0xa1/0x100
  hid_report_raw_event+0x1489/0x1720
  hid_input_report+0x44b/0x580
  hid_irq_in+0x47e/0x6d0
  __usb_hcd_giveback_urb+0x376/0x540
  dummy_timer+0xbbd/0x45d0
  __hrtimer_run_queues+0x527/0xc30
  hrtimer_run_softirq+0x187/0x2b0
  handle_softirqs+0x22a/0x7c0
  __irq_exit_rcu+0x5f/0x150
  irq_exit_rcu+0x9/0x30
  sysvec_apic_timer_interrupt+0xa6/0xc0
  asm_sysvec_apic_timer_interrupt+0x1a/0x20
  lock_acquire+0x221/0x330
  schedule+0xb0/0x360
  do_nanosleep+0x1c2/0x620
  hrtimer_nanosleep+0x188/0x390
  __se_sys_clock_nanosleep+0x35b/0x3b0
  do_syscall_64+0xe2/0xf80
  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+0x106/0x330
  _raw_read_lock+0x36/0x50
  __do_wait+0xde/0x740
  do_wait+0x1e7/0x4f0
  kernel_wait+0xd6/0x1c0
  call_usermodehelper_exec_work+0xbe/0x230
  process_scheduled_works+0xaec/0x17a0
  worker_thread+0x89f/0xd90
  kthread+0x726/0x8b0
  ret_from_fork+0x51b/0xa40
  ret_from_fork_asm+0x1a/0x30

other info that might help us debug this:

Chain exists of:
  &dev->event_lock#2 --> &f_owner->lock --> tasklist_lock

 Possible interrupt unsafe locking scenario:

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

 *** DEADLOCK ***

5 locks held by syz.8.33163/19980:
 #0: ffff8881b8ac6420 (sb_writers#5){.+.+}-{0:0}, at: mnt_want_write+0x41/0x90
 #1: ffff8881a8f06a48 (&type->i_mutex_dir_key#5/1){+.+.}-{4:4}, at: filename_create+0x200/0x370
 #2: ffffffff99e267f8 (&fsnotify_mark_srcu){.+.?}-{0:0}, at: fsnotify+0x74c/0x1ae0
 #3: ffff88810af0a808 (&mark->lock){+.+.}-{3:3}, at: dnotify_handle_event+0x62/0x440
 #4: ffff88810a2dc220 (&f_owner->lock){....}-{3:3}, at: send_sigio+0x38/0x370

the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
   -> (&dev->event_lock#2){..-.}-{3:3} {
      IN-SOFTIRQ-W at:
                          lock_acquire+0x106/0x330
                          _raw_spin_lock_irqsave+0x40/0x60
                          input_event+0x76/0xe0
                          hidinput_report_event+0xa1/0x100
                          hid_report_raw_event+0x1489/0x1720
                          hid_input_report+0x44b/0x580
                          hid_irq_in+0x47e/0x6d0
                          __usb_hcd_giveback_urb+0x376/0x540
                          dummy_timer+0xbbd/0x45d0
                          __hrtimer_run_queues+0x527/0xc30
                          hrtimer_run_softirq+0x187/0x2b0
                          handle_softirqs+0x22a/0x7c0
                          __irq_exit_rcu+0x5f/0x150
                          irq_exit_rcu+0x9/0x30
                          sysvec_apic_timer_interrupt+0xa6/0xc0
                          asm_sysvec_apic_timer_interrupt+0x1a/0x20
                          lock_acquire+0x221/0x330
                          schedule+0xb0/0x360
                          do_nanosleep+0x1c2/0x620
                          hrtimer_nanosleep+0x188/0x390
                          __se_sys_clock_nanosleep+0x35b/0x3b0
                          do_syscall_64+0xe2/0xf80
                          entry_SYSCALL_64_after_hwframe+0x77/0x7f
      INITIAL USE at:
                         lock_acquire+0x106/0x330
                         _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+0x788/0x9c0
                         input_leds_connect+0x517/0x790
                         input_register_device+0xd00/0x1160
                         atkbd_connect+0x731/0xa50
                         serio_driver_probe+0x82/0xd0
                         really_probe+0x26d/0xac0
                         __driver_probe_device+0x18c/0x320
                         driver_probe_device+0x4f/0x240
                         __driver_attach+0x349/0x640
                         bus_for_each_dev+0x23b/0x2c0
                         serio_handle_event+0x1f9/0x8d0
                         process_scheduled_works+0xaec/0x17a0
                         worker_thread+0x89f/0xd90
                         kthread+0x726/0x8b0
                         ret_from_fork+0x51b/0xa40
                         ret_from_fork_asm+0x1a/0x30
    }
    ... key      at: [<ffffffff9a1417e0>] input_allocate_device.__key.7+0x0/0x20
  -> (&client->buffer_lock){....}-{3:3} {
     INITIAL USE at:
                       lock_acquire+0x106/0x330
                       _raw_spin_lock_irq+0x3d/0x50
                       evdev_read+0x37d/0xcb0
                       vfs_readv+0x587/0x840
                       do_readv+0x154/0x2e0
                       do_syscall_64+0xe2/0xf80
                       entry_SYSCALL_64_after_hwframe+0x77/0x7f
   }
   ... key      at: [<ffffffff9a141a80>] 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+0xe2/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

 -> (&new->fa_lock){...-}-{3:3} {
    IN-SOFTIRQ-R at:
                      lock_acquire+0x106/0x330
                      _raw_read_lock_irqsave+0x48/0x60
                      kill_fasync+0x199/0x4d0
                      sock_wake_async+0x137/0x160
                      sock_def_readable+0x3c1/0x530
                      tcp_data_queue+0x1e2e/0x5e50
                      tcp_rcv_established+0xf5f/0x25b0
                      tcp_v4_do_rcv+0xa90/0x1430
                      tcp_v4_rcv+0x26f9/0x2fe0
                      ip_protocol_deliver_rcu+0x221/0x440
                      ip_local_deliver_finish+0x3bb/0x6f0
                      NF_HOOK+0x336/0x3c0
                      NF_HOOK+0x336/0x3c0
                      __netif_receive_skb+0x143/0x370
                      process_backlog+0x54e/0x1340
                      __napi_poll+0xae/0x320
                      net_rx_action+0x696/0xe30
                      handle_softirqs+0x22a/0x7c0
                      do_softirq+0x76/0xd0
                      __local_bh_enable_ip+0xf8/0x130
                      sk_stream_wait_memory+0x72b/0xf80
                      tcp_sendmsg_locked+0x1e37/0x55b0
                      tcp_sendmsg+0x2f/0x50
                      __sock_sendmsg+0x19c/0x270
                      __sys_sendto+0x3c0/0x550
                      __x64_sys_sendto+0xde/0x100
                      do_syscall_64+0xe2/0xf80
                      entry_SYSCALL_64_after_hwframe+0x77/0x7f
    INITIAL USE at:
                     lock_acquire+0x106/0x330
                     _raw_write_lock_irq+0x3d/0x50
                     fasync_remove_entry+0xf1/0x1c0
                     lease_modify+0x1ca/0x3c0
                     locks_remove_file+0x554/0xee0
                     __fput+0x3ae/0xa70
                     task_work_run+0x1d9/0x270
                     exit_to_user_mode_loop+0xed/0x480
                     do_syscall_64+0x2b7/0xf80
                     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    INITIAL READ USE at:
                          lock_acquire+0x106/0x330
                          _raw_read_lock_irqsave+0x48/0x60
                          kill_fasync+0x199/0x4d0
                          lease_break_callback+0x26/0x30
                          __break_lease+0x6ee/0x14b0
                          vfs_create+0x2da/0x400
                          do_mknodat+0x3f1/0x620
                          __x64_sys_mknodat+0xa7/0xc0
                          do_syscall_64+0xe2/0xf80
                          entry_SYSCALL_64_after_hwframe+0x77/0x7f
  }
  ... key      at: [<ffffffff99e23980>] 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+0xe2/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> (&f_owner->lock){....}-{3:3} {
   INITIAL USE at:
                   lock_acquire+0x106/0x330
                   _raw_write_lock_irq+0x3d/0x50
                   __f_setown+0x67/0x370
                   generic_setlease+0xba2/0xed0
                   do_fcntl_add_lease+0x35e/0x470
                   fcntl_setdeleg+0x14c/0x1e0
                   do_fcntl+0xdb6/0x1a50
                   __se_sys_fcntl+0xc8/0x150
                   do_syscall_64+0xe2/0xf80
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL READ USE at:
                        lock_acquire+0x106/0x330
                        _raw_read_lock_irqsave+0x48/0x60
                        send_sigio+0x38/0x370
                        kill_fasync+0x24d/0x4d0
                        lease_break_callback+0x26/0x30
                        __break_lease+0x6ee/0x14b0
                        vfs_create+0x2da/0x400
                        do_mknodat+0x3f1/0x620
                        __x64_sys_mknodat+0xa7/0xc0
                        do_syscall_64+0xe2/0xf80
                        entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff99e23960>] 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+0x6ee/0x14b0
   vfs_create+0x2da/0x400
   do_mknodat+0x3f1/0x620
   __x64_sys_mknodat+0xa7/0xc0
   do_syscall_64+0xe2/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+0x106/0x330
                    _raw_read_lock+0x36/0x50
                    __do_wait+0xde/0x740
                    do_wait+0x1e7/0x4f0
                    kernel_wait+0xd6/0x1c0
                    call_usermodehelper_exec_work+0xbe/0x230
                    process_scheduled_works+0xaec/0x17a0
                    worker_thread+0x89f/0xd90
                    kthread+0x726/0x8b0
                    ret_from_fork+0x51b/0xa40
                    ret_from_fork_asm+0x1a/0x30
   SOFTIRQ-ON-R at:
                    lock_acquire+0x106/0x330
                    _raw_read_lock+0x36/0x50
                    __do_wait+0xde/0x740
                    do_wait+0x1e7/0x4f0
                    kernel_wait+0xd6/0x1c0
                    call_usermodehelper_exec_work+0xbe/0x230
                    process_scheduled_works+0xaec/0x17a0
                    worker_thread+0x89f/0xd90
                    kthread+0x726/0x8b0
                    ret_from_fork+0x51b/0xa40
                    ret_from_fork_asm+0x1a/0x30
   INITIAL USE at:
                   lock_acquire+0x106/0x330
                   _raw_write_lock_irq+0x3d/0x50
                   copy_process+0x2199/0x3980
                   kernel_clone+0x248/0x870
                   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+0x106/0x330
                        _raw_read_lock+0x36/0x50
                        __do_wait+0xde/0x740
                        do_wait+0x1e7/0x4f0
                        kernel_wait+0xd6/0x1c0
                        call_usermodehelper_exec_work+0xbe/0x230
                        process_scheduled_works+0xaec/0x17a0
                        worker_thread+0x89f/0xd90
                        kthread+0x726/0x8b0
                        ret_from_fork+0x51b/0xa40
                        ret_from_fork_asm+0x1a/0x30
 }
 ... key      at: [<ffffffff8e00c058>] tasklist_lock+0x18/0x40
 ... acquired at:
   _raw_read_lock+0x36/0x50
   send_sigio+0x101/0x370
   dnotify_handle_event+0x169/0x440
   fsnotify+0x1831/0x1ae0
   fsnotify_mkdir+0x121/0x180
   vfs_mkdir+0x54d/0x5b0
   do_mkdirat+0x27d/0x4b0
   __x64_sys_mkdir+0x6c/0x80
   do_syscall_64+0xe2/0xf80
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


stack backtrace:
CPU: 0 UID: 0 PID: 19980 Comm: syz.8.33163 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+0x106/0x330
 _raw_read_lock+0x36/0x50
 send_sigio+0x101/0x370
 dnotify_handle_event+0x169/0x440
 fsnotify+0x1831/0x1ae0
 fsnotify_mkdir+0x121/0x180
 vfs_mkdir+0x54d/0x5b0
 do_mkdirat+0x27d/0x4b0
 __x64_sys_mkdir+0x6c/0x80
 do_syscall_64+0xe2/0xf80
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f176739acb9
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:00007f17682bb028 EFLAGS: 00000246 ORIG_RAX: 0000000000000053
RAX: ffffffffffffffda RBX: 00007f1767615fa0 RCX: 00007f176739acb9
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000200000000300
RBP: 00007f1767408bf7 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f1767616038 R14: 00007f1767615fa0 R15: 00007ffc942d1088
 </TASK>
