TITLE: inconsistent lock state in io_file_data_ref_zero
TYPE: LOCKDEP

[ 1034.371675][    C0] ================================
[ 1034.372179][    C0] WARNING: inconsistent lock state
[ 1034.372779][    C0] 5.10.2 #14 Not tainted
[ 1034.373245][    C0] --------------------------------
[ 1034.373871][    C0] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
[ 1034.374564][    C0] swapper/0/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 1034.375670][    C0] 8f5cc25c (&file_data->lock){+.?.}-{3:3}, at: io_file_data_ref_zero+0x30/0x1a8
[ 1034.378810][    C0] {SOFTIRQ-ON-W} state was registered at:
[ 1034.379611][    C0]   lock_acquire.part.0+0xc4/0x4b4
[ 1034.380272][    C0]   lock_acquire+0x68/0x74
[ 1034.380831][    C0]   _raw_spin_lock+0x4c/0x5c
[ 1034.381397][    C0]   sys_io_uring_register+0x20e4/0x2410
[ 1034.381933][    C0]   ret_fast_syscall+0x0/0x28
[ 1034.382528][    C0]   0x75ebdad8
[ 1034.382919][    C0] irq event stamp: 1199040
[ 1034.383522][    C0] hardirqs last  enabled at (1199040): [<80df84a0>] _raw_spin_unlock_irqrestore+0x54/0x58
[ 1034.384293][    C0] hardirqs last disabled at (1199039): [<80df8200>] _raw_spin_lock_irqsave+0x74/0x78
[ 1034.385062][    C0] softirqs last  enabled at (1199022): [<8014bb5c>] _local_bh_enable+0x2c/0x64
[ 1034.385644][    C0] softirqs last disabled at (1199023): [<8014c104>] __irq_exit_rcu+0xb4/0x170
[ 1034.386064][    C0] 
[ 1034.386064][    C0] other info that might help us debug this:
[ 1034.386617][    C0]  Possible unsafe locking scenario:
[ 1034.386617][    C0] 
[ 1034.387169][    C0]        CPU0
[ 1034.387568][    C0]        ----
[ 1034.387831][    C0]   lock(&file_data->lock);
[ 1034.388241][    C0]   <Interrupt>
[ 1034.388486][    C0]     lock(&file_data->lock);
[ 1034.388933][    C0] 
[ 1034.388933][    C0]  *** DEADLOCK ***
[ 1034.388933][    C0] 
[ 1034.389401][    C0] 2 locks held by swapper/0/0:
[ 1034.389769][    C0]  #0: 812239d8 (rcu_callback){....}-{0:0}, at: rcu_core+0x314/0xa74
[ 1034.390619][    C0]  #1: 81223780 (rcu_read_lock){....}-{1:3}, at: percpu_ref_put_many.constprop.0+0x0/0x250
[ 1034.391504][    C0] 
[ 1034.391504][    C0] stack backtrace:
[ 1034.392069][    C0] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.2 #14
[ 1034.392450][    C0] Hardware name: ARM-Versatile Express
[ 1034.392904][    C0] Backtrace: 
[ 1034.393577][    C0] [<80de0078>] (dump_backtrace) from [<80de0574>] (show_stack+0x28/0x2c)
[ 1034.394344][    C0]  r9:60000193 r8:ffffffff r7:00000000 r6:00000080 r5:8101acf4 r4:00000000
[ 1034.394948][    C0] [<80de054c>] (show_stack) from [<80de7c10>] (dump_stack+0x154/0x1a8)
[ 1034.395419][    C0]  r5:00000000 r4:81260dfc
[ 1034.395893][    C0] [<80de7abc>] (dump_stack) from [<80de273c>] (print_usage_bug.part.0+0x1a4/0x200)
[ 1034.396717][    C0]  r10:812b3e30 r9:00000103 r8:00000001 r7:80e03f04 r6:810038fc r5:8172b700
[ 1034.397451][    C0]  r4:8120bec0 r3:00000000
[ 1034.397965][    C0] [<80de2598>] (print_usage_bug.part.0) from [<801ba88c>] (mark_lock.part.0+0xb88/0x11a8)
[ 1034.398632][    C0]  r9:00000000 r8:812b39bc r7:8120bec0 r6:00000001 r5:8120c448 r4:00000004
[ 1034.399199][    C0] [<801b9d04>] (mark_lock.part.0) from [<801bbbbc>] (__lock_acquire+0x9c8/0x30e0)
[ 1034.399881][    C0]  r10:8120c448 r9:00000000 r8:8120bec0 r7:00000416 r6:8120c448 r5:817128f4
[ 1034.400315][    C0]  r4:00000002
[ 1034.400792][    C0] [<801bb1f4>] (__lock_acquire) from [<801bed58>] (lock_acquire.part.0+0xc4/0x4b4)
[ 1034.401447][    C0]  r10:00000000 r9:8f5cc25c r8:81167528 r7:3d659000 r6:60000113 r5:81201bb8
[ 1034.401864][    C0]  r4:81167528
[ 1034.402304][    C0] [<801bec94>] (lock_acquire.part.0) from [<801bf1b0>] (lock_acquire+0x68/0x74)
[ 1034.402956][    C0]  r10:80456284 r9:00000000 r8:00000001 r7:00000000 r6:00000000 r5:00000000
[ 1034.403425][    C0]  r4:8f5cc25c
[ 1034.403883][    C0] [<801bf148>] (lock_acquire) from [<80df7ffc>] (_raw_spin_lock+0x4c/0x5c)
[ 1034.404590][    C0]  r10:812092b0 r9:00000002 r8:8f5b7800 r7:00000001 r6:8f5d2080 r5:8f5cc200
[ 1034.405065][    C0]  r4:8f5cc24c
[ 1034.405558][    C0] [<80df7fb0>] (_raw_spin_lock) from [<80456284>] (io_file_data_ref_zero+0x30/0x1a8)
[ 1034.406056][    C0]  r4:8f5d2080
[ 1034.406736][    C0] [<80456254>] (io_file_data_ref_zero) from [<807164e4>] (percpu_ref_put_many.constprop.0+0x228/0x250)
[ 1034.407697][    C0]  r10:812092b0 r9:00000002 r8:81208ed4 r7:00000001 r6:8f5d2080 r5:00000003
[ 1034.408180][    C0]  r4:00000000
[ 1034.408691][    C0] [<807162bc>] (percpu_ref_put_many.constprop.0) from [<80716618>] (percpu_ref_switch_to_atomic_rcu+0x10c/0x190)
[ 1034.409402][    C0]  r7:8f5d2250 r6:8f5d2080 r5:00000000 r4:00000000
[ 1034.410098][    C0] [<8071650c>] (percpu_ref_switch_to_atomic_rcu) from [<801f3e54>] (rcu_core+0x2b4/0xa74)
[ 1034.410881][    C0]  r10:81201d60 r9:80e04848 r8:812239d8 r7:00000000 r6:0000000a r5:00000003
[ 1034.411411][    C0]  r4:8f5d2250
[ 1034.411843][    C0] [<801f3ba0>] (rcu_core) from [<801f474c>] (rcu_core_si+0x10/0x14)
[ 1034.412571][    C0]  r10:00000002 r9:81208ed8 r8:00000002 r7:00000003 r6:00000009 r5:812030a4
[ 1034.413088][    C0]  r4:81200000
[ 1034.413552][    C0] [<801f473c>] (rcu_core_si) from [<801013c0>] (__do_softirq+0xf0/0x698)
[ 1034.414205][    C0] [<801012d0>] (__do_softirq) from [<8014c104>] (__irq_exit_rcu+0xb4/0x170)
[ 1034.414941][    C0]  r10:000003fb r9:81c20400 r8:0000003b r7:812231ec r6:00000000 r5:81170f7c
[ 1034.415422][    C0]  r4:ffffe000
[ 1034.415880][    C0] [<8014c050>] (__irq_exit_rcu) from [<8014c5a4>] (irq_exit+0x10/0x30)
[ 1034.416470][    C0]  r5:81170f7c r4:00000000
[ 1034.417245][    C0] [<8014c594>] (irq_exit) from [<801d31a4>] (__handle_domain_irq+0xc8/0x12c)
[ 1034.418248][    C0] [<801d30dc>] (__handle_domain_irq) from [<807bcf60>] (gic_handle_irq+0xc0/0xfc)
[ 1034.419269][    C0]  r9:8120956c r8:00000010 r7:c0802000 r6:81201e90 r5:0000001b r4:0000001b
[ 1034.420403][    C0] [<807bcea0>] (gic_handle_irq) from [<80100b30>] (__irq_svc+0x70/0x98)
[ 1034.421268][    C0] Exception stack(0x81201e90 to 0x81201ed8)
[ 1034.422966][    C0] 1e80:                                     ffffffff 00000001 8120bec0 00000000
[ 1034.424252][    C0] 1ea0: 00000000 81200000 00000000 00000000 81208ed8 00000001 81208f10 81201ef4
[ 1034.425359][    C0] 1ec0: 81201ee0 81201ee0 8010cefc 8010cf00 80000013 ffffffff
[ 1034.426469][    C0]  r10:81208f10 r9:81200000 r8:81208ed8 r7:81201ec4 r6:ffffffff r5:80000013
[ 1034.427180][    C0]  r4:8010cf00
[ 1034.428013][    C0] [<8010ced0>] (arch_cpu_idle) from [<80df7f58>] (default_idle_call+0x4c/0xa0)
[ 1034.428850][    C0]  r5:81200000 r4:ffffe000
[ 1034.429509][    C0] [<80df7f0c>] (default_idle_call) from [<80197894>] (do_idle+0x238/0x2e0)
[ 1034.430413][    C0]  r5:81200000 r4:00000000
[ 1034.431131][    C0] [<8019765c>] (do_idle) from [<80197d2c>] (cpu_startup_entry+0x20/0x24)
[ 1034.432147][    C0]  r10:10c5387d r9:8105e364 r8:8105e364 r7:00000001 r6:00000001 r5:8129e5b4
[ 1034.432845][    C0]  r4:000000d8
[ 1034.433561][    C0] [<80197d0c>] (cpu_startup_entry) from [<80def414>] (rest_init+0x27c/0x3cc)
[ 1034.434518][    C0] [<80def198>] (rest_init) from [<81100d04>] (arch_call_rest_init+0x14/0x18)
[ 1034.435443][    C0]  r7:8105e364 r6:812b1040 r5:00000000 r4:00000000
[ 1034.436244][    C0] [<81100cf0>] (arch_call_rest_init) from [<811013a0>] (start_kernel+0x634/0x718)
[ 1034.437073][    C0] [<81100d6c>] (start_kernel) from [<00000000>] (0x0)
