===================================================== WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected 6.9.0-rc1-syzkaller-00009-g7033999ecd7b #0 Not tainted ----------------------------------------------------- syz-executor.3/7205 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire: ffff88801159a020 (&htab->buckets[i].lock){+...}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline] ffff88801159a020 (&htab->buckets[i].lock){+...}-{2:2}, at: sock_hash_delete_elem+0xd4/0x360 net/core/sock_map.c:939 and this task is already holding: ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: __iova_rcache_get drivers/iommu/iova.c:834 [inline] ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: iova_rcache_get drivers/iommu/iova.c:865 [inline] ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: alloc_iova_fast+0x6f3/0xa30 drivers/iommu/iova.c:391 which would create a new lock dependency: (&rcache->lock){..-.}-{2:2} -> (&htab->buckets[i].lock){+...}-{2:2} but this new dependency connects a HARDIRQ-irq-safe lock: (&host->lock){-.-.}-{2:2} ... which became HARDIRQ-irq-safe at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] ahci_single_level_irq_intr+0xc7/0x120 drivers/ata/libahci.c:2022 __handle_irq_event_percpu+0x229/0x7c0 kernel/irq/handle.c:158 handle_irq_event_percpu kernel/irq/handle.c:193 [inline] handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:210 handle_edge_irq+0x263/0xd10 kernel/irq/chip.c:831 generic_handle_irq_desc include/linux/irqdesc.h:161 [inline] handle_irq arch/x86/kernel/irq.c:238 [inline] __common_interrupt+0xde/0x250 arch/x86/kernel/irq.c:257 common_interrupt+0xab/0xd0 arch/x86/kernel/irq.c:247 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693 readl arch/x86/include/asm/io.h:58 [inline] e1000_lower_ee_clk drivers/net/ethernet/intel/e1000/e1000_hw.c:3555 [inline] e1000_shift_in_ee_bits+0x126/0x1e0 drivers/net/ethernet/intel/e1000/e1000_hw.c:3644 e1000_do_read_eeprom+0x264/0x580 drivers/net/ethernet/intel/e1000/e1000_hw.c:3934 e1000_read_eeprom drivers/net/ethernet/intel/e1000/e1000_hw.c:3850 [inline] e1000_validate_eeprom_checksum+0xbc/0x1a0 drivers/net/ethernet/intel/e1000/e1000_hw.c:3960 e1000_probe+0x15cd/0x32a0 drivers/net/ethernet/intel/e1000/e1000_main.c:1089 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 e1000_init_module+0x46/0xc0 drivers/net/ethernet/intel/e1000/e1000_main.c:227 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 to a HARDIRQ-irq-unsafe lock: (&htab->buckets[i].lock){+...}-{2:2} ... which became HARDIRQ-irq-unsafe at: ... lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xd4/0x360 net/core/sock_map.c:939 bpf_prog_2c29ac5cdc6b1842+0x42/0x46 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run3+0x167/0x440 kernel/trace/bpf_trace.c:2421 trace_kmem_cache_free include/trace/events/kmem.h:114 [inline] kmem_cache_free+0x1d4/0x380 mm/slub.c:4343 fsnotify_connector_destroy_workfn+0x81/0xa0 fs/notify/mark.c:212 process_one_work+0x902/0x1a30 kernel/workqueue.c:3254 process_scheduled_works kernel/workqueue.c:3335 [inline] worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416 kthread+0x2c1/0x3a0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 other info that might help us debug this: Chain exists of: &host->lock --> &rcache->lock --> &htab->buckets[i].lock Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&htab->buckets[i].lock); local_irq_disable(); lock(&host->lock); lock(&rcache->lock); lock(&host->lock); *** DEADLOCK *** 8 locks held by syz-executor.3/7205: #0: ffff888024a8a8c8 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos+0xeb/0x180 fs/file.c:1191 #1: ffff88801ef48420 (sb_writers#4){.+.+}-{0:0}, at: ksys_write+0x12f/0x260 fs/read_write.c:643 #2: ffff8880266deb98 (&sbi->s_writepages_rwsem){++++}-{0:0}, at: do_writepages+0x1a3/0x7f0 mm/page-writeback.c:2612 #3: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline] #3: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:781 [inline] #3: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: blk_mq_run_hw_queue+0x619/0x9a0 block/blk-mq.c:2273 #4: ffff88801f009818 (&host->lock){-.-.}-{2:2}, at: ata_scsi_queuecmd+0x86/0x160 drivers/ata/libata-scsi.c:4194 #5: ffffe8ffad315c18 (&cpu_rcache->lock){..-.}-{2:2}, at: __iova_rcache_get drivers/iommu/iova.c:826 [inline] #5: ffffe8ffad315c18 (&cpu_rcache->lock){..-.}-{2:2}, at: iova_rcache_get drivers/iommu/iova.c:865 [inline] #5: ffffe8ffad315c18 (&cpu_rcache->lock){..-.}-{2:2}, at: alloc_iova_fast+0xfa/0xa30 drivers/iommu/iova.c:391 #6: ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] #6: ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: __iova_rcache_get drivers/iommu/iova.c:834 [inline] #6: ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: iova_rcache_get drivers/iommu/iova.c:865 [inline] #6: ffff8880197e2540 (&rcache->lock){..-.}-{2:2}, at: alloc_iova_fast+0x6f3/0xa30 drivers/iommu/iova.c:391 #7: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline] #7: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:781 [inline] #7: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2380 [inline] #7: ffffffff8d7b4b60 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run3+0xf8/0x440 kernel/trace/bpf_trace.c:2421 the dependencies between HARDIRQ-irq-safe lock and the holding lock: -> (&host->lock){-.-.}-{2:2} { IN-HARDIRQ-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] ahci_single_level_irq_intr+0xc7/0x120 drivers/ata/libahci.c:2022 __handle_irq_event_percpu+0x229/0x7c0 kernel/irq/handle.c:158 handle_irq_event_percpu kernel/irq/handle.c:193 [inline] handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:210 handle_edge_irq+0x263/0xd10 kernel/irq/chip.c:831 generic_handle_irq_desc include/linux/irqdesc.h:161 [inline] handle_irq arch/x86/kernel/irq.c:238 [inline] __common_interrupt+0xde/0x250 arch/x86/kernel/irq.c:257 common_interrupt+0xab/0xd0 arch/x86/kernel/irq.c:247 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693 readl arch/x86/include/asm/io.h:58 [inline] e1000_lower_ee_clk drivers/net/ethernet/intel/e1000/e1000_hw.c:3555 [inline] e1000_shift_in_ee_bits+0x126/0x1e0 drivers/net/ethernet/intel/e1000/e1000_hw.c:3644 e1000_do_read_eeprom+0x264/0x580 drivers/net/ethernet/intel/e1000/e1000_hw.c:3934 e1000_read_eeprom drivers/net/ethernet/intel/e1000/e1000_hw.c:3850 [inline] e1000_validate_eeprom_checksum+0xbc/0x1a0 drivers/net/ethernet/intel/e1000/e1000_hw.c:3960 e1000_probe+0x15cd/0x32a0 drivers/net/ethernet/intel/e1000/e1000_main.c:1089 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 e1000_init_module+0x46/0xc0 drivers/net/ethernet/intel/e1000/e1000_main.c:227 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 IN-SOFTIRQ-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] ahci_single_level_irq_intr+0xc7/0x120 drivers/ata/libahci.c:2022 __handle_irq_event_percpu+0x229/0x7c0 kernel/irq/handle.c:158 handle_irq_event_percpu kernel/irq/handle.c:193 [inline] handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:210 handle_edge_irq+0x263/0xd10 kernel/irq/chip.c:831 generic_handle_irq_desc include/linux/irqdesc.h:161 [inline] handle_irq arch/x86/kernel/irq.c:238 [inline] __common_interrupt+0xde/0x250 arch/x86/kernel/irq.c:257 common_interrupt+0x52/0xd0 arch/x86/kernel/irq.c:247 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693 rcu_report_qs_rdp kernel/rcu/tree.c:2016 [inline] rcu_check_quiescent_state kernel/rcu/tree.c:2100 [inline] rcu_core+0x1cd/0x16b0 kernel/rcu/tree.c:2455 __do_softirq+0x218/0x922 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:160 [inline] _raw_spin_unlock_irq+0x29/0x50 kernel/locking/spinlock.c:202 spin_unlock_irq include/linux/spinlock.h:401 [inline] folio_wait_bit_common+0x22e/0x9c0 mm/filemap.c:1253 folio_put_wait_locked mm/filemap.c:1447 [inline] filemap_update_page mm/filemap.c:2394 [inline] filemap_get_pages+0x142a/0x1840 mm/filemap.c:2529 filemap_read+0x3a8/0xd10 mm/filemap.c:2601 generic_file_read_iter+0x350/0x460 mm/filemap.c:2782 ext4_file_read_iter+0x1dc/0x6c0 fs/ext4/file.c:147 __kernel_read+0x3ec/0xb20 fs/read_write.c:434 integrity_kernel_read+0x7f/0xb0 security/integrity/iint.c:28 ima_calc_file_hash_tfm+0x2cf/0x3e0 security/integrity/ima/ima_crypto.c:485 ima_calc_file_shash security/integrity/ima/ima_crypto.c:516 [inline] ima_calc_file_hash+0x1c6/0x4a0 security/integrity/ima/ima_crypto.c:573 ima_collect_measurement+0x7c4/0x920 security/integrity/ima/ima_api.c:291 process_measurement+0x11ae/0x2100 security/integrity/ima/ima_main.c:359 ima_file_check+0xc1/0x110 security/integrity/ima/ima_main.c:559 security_file_post_open+0x6d/0xc0 security/security.c:2981 do_open fs/namei.c:3644 [inline] path_openat+0x17ad/0x2990 fs/namei.c:3799 do_filp_open+0x1dc/0x430 fs/namei.c:3826 do_sys_openat2+0x17a/0x1e0 fs/open.c:1406 do_sys_open fs/open.c:1421 [inline] __do_sys_openat fs/open.c:1437 [inline] __se_sys_openat fs/open.c:1432 [inline] __x64_sys_openat+0x175/0x210 fs/open.c:1432 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xd2/0x260 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x6d/0x75 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 ata_dev_init+0x1b4/0x410 drivers/ata/libata-core.c:5399 ata_link_init+0x19c/0x300 drivers/ata/libata-core.c:5444 ata_port_alloc+0x4a1/0x590 drivers/ata/libata-core.c:5519 ata_host_alloc+0x21c/0x2c0 drivers/ata/libata-core.c:5631 ata_host_alloc_pinfo+0x2b/0x3f0 drivers/ata/libata-core.c:5674 ahci_init_one+0x132a/0x2de0 drivers/ata/ahci.c:1885 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 } ... key at: [] __key.5+0x0/0x40 -> (&cpu_rcache->lock){..-.}-{2:2} { IN-SOFTIRQ-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 __iova_rcache_insert drivers/iommu/iova.c:772 [inline] iova_rcache_insert drivers/iommu/iova.c:809 [inline] free_iova_fast+0xd1/0x4a0 drivers/iommu/iova.c:426 fq_ring_free_locked+0x1ab/0x310 drivers/iommu/dma-iommu.c:160 fq_ring_free drivers/iommu/dma-iommu.c:173 [inline] fq_flush_timeout+0x199/0x2e0 drivers/iommu/dma-iommu.c:196 call_timer_fn+0x1a0/0x610 kernel/time/timer.c:1793 expire_timers kernel/time/timer.c:1844 [inline] __run_timers+0x74b/0xaf0 kernel/time/timer.c:2418 __run_timer_base kernel/time/timer.c:2429 [inline] __run_timer_base kernel/time/timer.c:2422 [inline] run_timer_base+0x111/0x190 kernel/time/timer.c:2438 run_timer_softirq+0x1a/0x40 kernel/time/timer.c:2448 __do_softirq+0x218/0x922 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 writel arch/x86/include/asm/io.h:66 [inline] e1000_raise_ee_clk drivers/net/ethernet/intel/e1000/e1000_hw.c:3538 [inline] e1000_shift_out_ee_bits+0x191/0x300 drivers/net/ethernet/intel/e1000/e1000_hw.c:3599 e1000_do_read_eeprom+0x257/0x580 drivers/net/ethernet/intel/e1000/e1000_hw.c:3928 e1000_read_eeprom drivers/net/ethernet/intel/e1000/e1000_hw.c:3850 [inline] e1000_validate_eeprom_checksum+0xbc/0x1a0 drivers/net/ethernet/intel/e1000/e1000_hw.c:3960 e1000_probe+0x15cd/0x32a0 drivers/net/ethernet/intel/e1000/e1000_main.c:1089 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 e1000_init_module+0x46/0xc0 drivers/net/ethernet/intel/e1000/e1000_main.c:227 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 __iova_rcache_get drivers/iommu/iova.c:826 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0xfa/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 __iommu_dma_alloc_noncontiguous.constprop.0+0x498/0x9c0 drivers/iommu/dma-iommu.c:978 iommu_dma_alloc_remap drivers/iommu/dma-iommu.c:1026 [inline] iommu_dma_alloc+0x3c9/0x5f0 drivers/iommu/dma-iommu.c:1621 dma_alloc_attrs+0x25a/0x2a0 kernel/dma/mapping.c:522 dmam_alloc_attrs+0x67/0x180 kernel/dma/mapping.c:99 dmam_alloc_coherent include/linux/dma-mapping.h:553 [inline] ahci_port_start+0x415/0x920 drivers/ata/libahci.c:2530 ata_host_start+0x36b/0x730 drivers/ata/libata-core.c:5819 ata_host_activate+0x2f/0x3c0 drivers/ata/libata-core.c:6039 ahci_host_activate+0x3fc/0x570 drivers/ata/libahci.c:2768 ahci_init_one+0x2485/0x2de0 drivers/ata/ahci.c:1953 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 } ... key at: [] __key.0+0x0/0x40 ... acquired at: __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 __iova_rcache_get drivers/iommu/iova.c:826 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0xfa/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 iommu_dma_map_sg+0x765/0xc80 drivers/iommu/dma-iommu.c:1444 __dma_map_sg_attrs+0xd6/0x230 kernel/dma/mapping.c:201 dma_map_sg_attrs+0x34/0x50 kernel/dma/mapping.c:236 ata_sg_setup drivers/ata/libata-core.c:4741 [inline] ata_qc_issue+0x81a/0xf50 drivers/ata/libata-core.c:5043 ata_exec_internal_sg+0xaa9/0x1800 drivers/ata/libata-core.c:1576 ata_exec_internal+0x113/0x180 drivers/ata/libata-core.c:1689 ata_do_dev_read_id drivers/ata/libata-core.c:1763 [inline] ata_dev_read_id+0xc9c/0x18e0 drivers/ata/libata-core.c:1836 ata_eh_revalidate_and_attach drivers/ata/libata-eh.c:3108 [inline] ata_eh_recover+0x1789/0x3d60 drivers/ata/libata-eh.c:3817 sata_pmp_eh_recover drivers/ata/libata-pmp.c:936 [inline] sata_pmp_error_handler+0x103e/0x2900 drivers/ata/libata-pmp.c:1099 ahci_error_handler+0x10c/0x1e0 drivers/ata/libahci.c:2226 ata_scsi_port_error_handler+0x930/0x1b50 drivers/ata/libata-eh.c:728 ata_scsi_error+0x1eb/0x300 drivers/ata/libata-eh.c:572 scsi_error_handler+0x2ff/0x1650 drivers/scsi/scsi_error.c:2338 kthread+0x2c1/0x3a0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 -> (&rcache->lock){..-.}-{2:2} { IN-SOFTIRQ-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] __iova_rcache_get drivers/iommu/iova.c:834 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0x6f3/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x1f4/0x450 drivers/iommu/dma-iommu.c:804 __iommu_dma_map+0x175/0x330 drivers/iommu/dma-iommu.c:869 iommu_dma_map_page+0x183/0x760 drivers/iommu/dma-iommu.c:1190 dma_map_page_attrs+0x148/0x7f0 kernel/dma/mapping.c:163 dma_map_single_attrs include/linux/dma-mapping.h:341 [inline] e1000_tx_map drivers/net/ethernet/intel/e1000/e1000_main.c:2876 [inline] e1000_xmit_frame+0x163c/0x4fb0 drivers/net/ethernet/intel/e1000/e1000_main.c:3244 __netdev_start_xmit include/linux/netdevice.h:4903 [inline] netdev_start_xmit include/linux/netdevice.h:4917 [inline] xmit_one net/core/dev.c:3531 [inline] dev_hard_start_xmit+0x143/0x790 net/core/dev.c:3547 sch_direct_xmit+0x1ac/0xc20 net/sched/sch_generic.c:343 __dev_xmit_skb net/core/dev.c:3760 [inline] __dev_queue_xmit+0x12c3/0x3f20 net/core/dev.c:4301 lapb_data_transmit+0x93/0xc0 net/lapb/lapb_iface.c:447 lapb_transmit_buffer+0xce/0x390 net/lapb/lapb_out.c:149 lapb_send_control+0x1c8/0x320 net/lapb/lapb_subr.c:251 lapb_t1timer_expiry+0x609/0x900 net/lapb/lapb_timer.c:142 call_timer_fn+0x1a0/0x610 kernel/time/timer.c:1793 expire_timers kernel/time/timer.c:1844 [inline] __run_timers+0x74b/0xaf0 kernel/time/timer.c:2418 __run_timer_base kernel/time/timer.c:2429 [inline] __run_timer_base kernel/time/timer.c:2422 [inline] timer_expire_remote+0xff/0x170 kernel/time/timer.c:2181 tmigr_handle_remote_cpu kernel/time/timer_migration.c:908 [inline] tmigr_handle_remote_up kernel/time/timer_migration.c:1000 [inline] __walk_groups kernel/time/timer_migration.c:488 [inline] tmigr_handle_remote+0x7ba/0xe00 kernel/time/timer_migration.c:1061 run_timer_softirq+0x35/0x40 kernel/time/timer.c:2452 __do_softirq+0x218/0x922 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline] arch_safe_halt arch/x86/include/asm/irqflags.h:86 [inline] default_idle+0xf/0x20 arch/x86/kernel/process.c:742 default_idle_call+0x6d/0xb0 kernel/sched/idle.c:117 cpuidle_idle_call kernel/sched/idle.c:191 [inline] do_idle+0x32c/0x3f0 kernel/sched/idle.c:332 cpu_startup_entry+0x4f/0x60 kernel/sched/idle.c:430 rest_init+0x16b/0x2b0 init/main.c:732 start_kernel+0x3a3/0x490 init/main.c:1074 x86_64_start_reservations+0x18/0x30 arch/x86/kernel/head64.c:507 x86_64_start_kernel+0xb2/0xc0 arch/x86/kernel/head64.c:488 common_startup_64+0x13e/0x148 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] __iova_rcache_get drivers/iommu/iova.c:834 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0x6f3/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 __iommu_dma_alloc_noncontiguous.constprop.0+0x498/0x9c0 drivers/iommu/dma-iommu.c:978 iommu_dma_alloc_remap drivers/iommu/dma-iommu.c:1026 [inline] iommu_dma_alloc+0x3c9/0x5f0 drivers/iommu/dma-iommu.c:1621 dma_alloc_attrs+0x25a/0x2a0 kernel/dma/mapping.c:522 dmam_alloc_attrs+0x67/0x180 kernel/dma/mapping.c:99 dmam_alloc_coherent include/linux/dma-mapping.h:553 [inline] ahci_port_start+0x415/0x920 drivers/ata/libahci.c:2530 ata_host_start+0x36b/0x730 drivers/ata/libata-core.c:5819 ata_host_activate+0x2f/0x3c0 drivers/ata/libata-core.c:6039 ahci_host_activate+0x3fc/0x570 drivers/ata/libahci.c:2768 ahci_init_one+0x2485/0x2de0 drivers/ata/ahci.c:1953 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 } ... key at: [] __key.3+0x0/0x40 ... acquired at: __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] __iova_rcache_get drivers/iommu/iova.c:834 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0x6f3/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 __iommu_dma_alloc_noncontiguous.constprop.0+0x498/0x9c0 drivers/iommu/dma-iommu.c:978 iommu_dma_alloc_remap drivers/iommu/dma-iommu.c:1026 [inline] iommu_dma_alloc+0x3c9/0x5f0 drivers/iommu/dma-iommu.c:1621 dma_alloc_attrs+0x25a/0x2a0 kernel/dma/mapping.c:522 dmam_alloc_attrs+0x67/0x180 kernel/dma/mapping.c:99 dmam_alloc_coherent include/linux/dma-mapping.h:553 [inline] ahci_port_start+0x415/0x920 drivers/ata/libahci.c:2530 ata_host_start+0x36b/0x730 drivers/ata/libata-core.c:5819 ata_host_activate+0x2f/0x3c0 drivers/ata/libata-core.c:6039 ahci_host_activate+0x3fc/0x570 drivers/ata/libahci.c:2768 ahci_init_one+0x2485/0x2de0 drivers/ata/ahci.c:1953 local_pci_probe+0xde/0x1b0 drivers/pci/pci-driver.c:324 pci_call_probe drivers/pci/pci-driver.c:392 [inline] __pci_device_probe drivers/pci/pci-driver.c:417 [inline] pci_device_probe+0x29d/0x7b0 drivers/pci/pci-driver.c:451 call_driver_probe drivers/base/dd.c:578 [inline] really_probe+0x23e/0xa90 drivers/base/dd.c:656 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:798 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:828 __driver_attach+0x283/0x580 drivers/base/dd.c:1214 bus_for_each_dev+0x13c/0x1d0 drivers/base/bus.c:368 bus_add_driver+0x2ed/0x640 drivers/base/bus.c:673 driver_register+0x15c/0x4b0 drivers/base/driver.c:246 do_one_initcall+0x128/0x630 init/main.c:1238 do_initcall_level init/main.c:1300 [inline] do_initcalls init/main.c:1316 [inline] do_basic_setup init/main.c:1335 [inline] kernel_init_freeable+0x660/0xc50 init/main.c:1548 kernel_init+0x1c/0x2b0 init/main.c:1437 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock: -> (&htab->buckets[i].lock){+...}-{2:2} { HARDIRQ-ON-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xd4/0x360 net/core/sock_map.c:939 bpf_prog_2c29ac5cdc6b1842+0x42/0x46 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run3+0x167/0x440 kernel/trace/bpf_trace.c:2421 trace_kmem_cache_free include/trace/events/kmem.h:114 [inline] kmem_cache_free+0x1d4/0x380 mm/slub.c:4343 fsnotify_connector_destroy_workfn+0x81/0xa0 fs/notify/mark.c:212 process_one_work+0x902/0x1a30 kernel/workqueue.c:3254 process_scheduled_works kernel/workqueue.c:3335 [inline] worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416 kthread+0x2c1/0x3a0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xd4/0x360 net/core/sock_map.c:939 bpf_prog_2c29ac5cdc6b1842+0x42/0x46 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run3+0x167/0x440 kernel/trace/bpf_trace.c:2421 trace_kmem_cache_free include/trace/events/kmem.h:114 [inline] kmem_cache_free+0x1d4/0x380 mm/slub.c:4343 fsnotify_connector_destroy_workfn+0x81/0xa0 fs/notify/mark.c:212 process_one_work+0x902/0x1a30 kernel/workqueue.c:3254 process_scheduled_works kernel/workqueue.c:3335 [inline] worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416 kthread+0x2c1/0x3a0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 } ... key at: [] __key.0+0x0/0x40 ... acquired at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xd4/0x360 net/core/sock_map.c:939 bpf_prog_2c29ac5cdc6b1842+0x42/0x46 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run3+0x167/0x440 kernel/trace/bpf_trace.c:2421 trace_kmem_cache_free include/trace/events/kmem.h:114 [inline] kmem_cache_free+0x1d4/0x380 mm/slub.c:4343 iova_magazine_free drivers/iommu/iova.c:613 [inline] __iova_rcache_get drivers/iommu/iova.c:836 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0x74d/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 iommu_dma_map_sg+0x765/0xc80 drivers/iommu/dma-iommu.c:1444 __dma_map_sg_attrs+0xd6/0x230 kernel/dma/mapping.c:201 dma_map_sg_attrs+0x34/0x50 kernel/dma/mapping.c:236 ata_sg_setup drivers/ata/libata-core.c:4741 [inline] ata_qc_issue+0x81a/0xf50 drivers/ata/libata-core.c:5043 ata_scsi_translate drivers/ata/libata-scsi.c:1717 [inline] __ata_scsi_queuecmd+0x9b6/0x1300 drivers/ata/libata-scsi.c:4153 ata_scsi_queuecmd+0xac/0x160 drivers/ata/libata-scsi.c:4198 scsi_dispatch_cmd drivers/scsi/scsi_lib.c:1610 [inline] scsi_queue_rq+0x12af/0x3620 drivers/scsi/scsi_lib.c:1852 blk_mq_dispatch_rq_list+0x452/0x2030 block/blk-mq.c:2058 __blk_mq_do_dispatch_sched block/blk-mq-sched.c:170 [inline] blk_mq_do_dispatch_sched block/blk-mq-sched.c:184 [inline] __blk_mq_sched_dispatch_requests+0xcdf/0x1620 block/blk-mq-sched.c:309 blk_mq_sched_dispatch_requests+0xd4/0x150 block/blk-mq-sched.c:331 blk_mq_run_hw_queue+0x645/0x9a0 block/blk-mq.c:2273 blk_mq_dispatch_plug_list block/blk-mq.c:2774 [inline] blk_mq_flush_plug_list.part.0+0x611/0x1d90 block/blk-mq.c:2822 blk_mq_flush_plug_list block/blk-mq.c:1296 [inline] blk_add_rq_to_plug+0x117/0x540 block/blk-mq.c:1299 blk_mq_submit_bio+0x1602/0x20f0 block/blk-mq.c:3014 __submit_bio+0xfd/0x310 block/blk-core.c:619 __submit_bio_noacct_mq block/blk-core.c:698 [inline] submit_bio_noacct_nocheck+0x98a/0xd50 block/blk-core.c:727 submit_bio_noacct+0x746/0x1ba0 block/blk-core.c:837 ext4_io_submit+0xa6/0x140 fs/ext4/page-io.c:378 ext4_do_writepages+0xf0f/0x3250 fs/ext4/inode.c:2699 ext4_writepages+0x303/0x730 fs/ext4/inode.c:2768 do_writepages+0x1a3/0x7f0 mm/page-writeback.c:2612 filemap_fdatawrite_wbc mm/filemap.c:397 [inline] filemap_fdatawrite_wbc+0x148/0x1c0 mm/filemap.c:387 __filemap_fdatawrite_range+0xba/0x100 mm/filemap.c:430 file_write_and_wait_range+0xd0/0x140 mm/filemap.c:788 ext4_sync_file+0x296/0xf30 fs/ext4/fsync.c:158 vfs_fsync_range+0x141/0x230 fs/sync.c:188 generic_write_sync include/linux/fs.h:2793 [inline] ext4_buffered_write_iter+0x2e6/0x3d0 fs/ext4/file.c:305 ext4_file_write_iter+0x874/0x1a40 fs/ext4/file.c:698 call_write_iter include/linux/fs.h:2108 [inline] new_sync_write fs/read_write.c:497 [inline] vfs_write+0x6db/0x1100 fs/read_write.c:590 ksys_write+0x12f/0x260 fs/read_write.c:643 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline] __do_fast_syscall_32+0x7a/0x120 arch/x86/entry/common.c:321 do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:346 entry_SYSENTER_compat_after_hwframe+0x7a/0x84 stack backtrace: CPU: 1 PID: 7205 Comm: syz-executor.3 Not tainted 6.9.0-rc1-syzkaller-00009-g7033999ecd7b #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:114 print_bad_irq_dependency kernel/locking/lockdep.c:2626 [inline] check_irq_usage+0xe3c/0x1490 kernel/locking/lockdep.c:2865 check_prev_add kernel/locking/lockdep.c:3138 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain kernel/locking/lockdep.c:3869 [inline] __lock_acquire+0x248e/0x3b30 kernel/locking/lockdep.c:5137 lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xd4/0x360 net/core/sock_map.c:939 bpf_prog_2c29ac5cdc6b1842+0x42/0x46 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run3+0x167/0x440 kernel/trace/bpf_trace.c:2421 trace_kmem_cache_free include/trace/events/kmem.h:114 [inline] kmem_cache_free+0x1d4/0x380 mm/slub.c:4343 iova_magazine_free drivers/iommu/iova.c:613 [inline] __iova_rcache_get drivers/iommu/iova.c:836 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0x74d/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 iommu_dma_map_sg+0x765/0xc80 drivers/iommu/dma-iommu.c:1444 __dma_map_sg_attrs+0xd6/0x230 kernel/dma/mapping.c:201 dma_map_sg_attrs+0x34/0x50 kernel/dma/mapping.c:236 ata_sg_setup drivers/ata/libata-core.c:4741 [inline] ata_qc_issue+0x81a/0xf50 drivers/ata/libata-core.c:5043 ata_scsi_translate drivers/ata/libata-scsi.c:1717 [inline] __ata_scsi_queuecmd+0x9b6/0x1300 drivers/ata/libata-scsi.c:4153 ata_scsi_queuecmd+0xac/0x160 drivers/ata/libata-scsi.c:4198 scsi_dispatch_cmd drivers/scsi/scsi_lib.c:1610 [inline] scsi_queue_rq+0x12af/0x3620 drivers/scsi/scsi_lib.c:1852 blk_mq_dispatch_rq_list+0x452/0x2030 block/blk-mq.c:2058 __blk_mq_do_dispatch_sched block/blk-mq-sched.c:170 [inline] blk_mq_do_dispatch_sched block/blk-mq-sched.c:184 [inline] __blk_mq_sched_dispatch_requests+0xcdf/0x1620 block/blk-mq-sched.c:309 blk_mq_sched_dispatch_requests+0xd4/0x150 block/blk-mq-sched.c:331 blk_mq_run_hw_queue+0x645/0x9a0 block/blk-mq.c:2273 blk_mq_dispatch_plug_list block/blk-mq.c:2774 [inline] blk_mq_flush_plug_list.part.0+0x611/0x1d90 block/blk-mq.c:2822 blk_mq_flush_plug_list block/blk-mq.c:1296 [inline] blk_add_rq_to_plug+0x117/0x540 block/blk-mq.c:1299 blk_mq_submit_bio+0x1602/0x20f0 block/blk-mq.c:3014 __submit_bio+0xfd/0x310 block/blk-core.c:619 __submit_bio_noacct_mq block/blk-core.c:698 [inline] submit_bio_noacct_nocheck+0x98a/0xd50 block/blk-core.c:727 submit_bio_noacct+0x746/0x1ba0 block/blk-core.c:837 ext4_io_submit+0xa6/0x140 fs/ext4/page-io.c:378 ext4_do_writepages+0xf0f/0x3250 fs/ext4/inode.c:2699 ext4_writepages+0x303/0x730 fs/ext4/inode.c:2768 do_writepages+0x1a3/0x7f0 mm/page-writeback.c:2612 filemap_fdatawrite_wbc mm/filemap.c:397 [inline] filemap_fdatawrite_wbc+0x148/0x1c0 mm/filemap.c:387 __filemap_fdatawrite_range+0xba/0x100 mm/filemap.c:430 file_write_and_wait_range+0xd0/0x140 mm/filemap.c:788 ext4_sync_file+0x296/0xf30 fs/ext4/fsync.c:158 vfs_fsync_range+0x141/0x230 fs/sync.c:188 generic_write_sync include/linux/fs.h:2793 [inline] ext4_buffered_write_iter+0x2e6/0x3d0 fs/ext4/file.c:305 ext4_file_write_iter+0x874/0x1a40 fs/ext4/file.c:698 call_write_iter include/linux/fs.h:2108 [inline] new_sync_write fs/read_write.c:497 [inline] vfs_write+0x6db/0x1100 fs/read_write.c:590 ksys_write+0x12f/0x260 fs/read_write.c:643 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline] __do_fast_syscall_32+0x7a/0x120 arch/x86/entry/common.c:321 do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:346 entry_SYSENTER_compat_after_hwframe+0x7a/0x84 RIP: 0023:0xf7311579 Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 RSP: 002b:00000000f5f0b5ac EFLAGS: 00000292 ORIG_RAX: 0000000000000004 RAX: ffffffffffffffda RBX: 0000000000000008 RCX: 00000000200003c0 RDX: 0000000000032600 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 ------------[ cut here ]------------ raw_local_irq_restore() called with IRQs enabled WARNING: CPU: 1 PID: 7205 at kernel/locking/irqflag-debug.c:10 warn_bogus_irq_restore+0x29/0x30 kernel/locking/irqflag-debug.c:10 Modules linked in: CPU: 1 PID: 7205 Comm: syz-executor.3 Not tainted 6.9.0-rc1-syzkaller-00009-g7033999ecd7b #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 RIP: 0010:warn_bogus_irq_restore+0x29/0x30 kernel/locking/irqflag-debug.c:10 Code: 90 f3 0f 1e fa 90 80 3d f1 4b b4 04 00 74 06 90 c3 cc cc cc cc c6 05 e2 4b b4 04 01 90 48 c7 c7 a0 cc 0c 8b e8 38 52 7c f6 90 <0f> 0b 90 90 eb df 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffc90023fae9a8 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffe8ffad315c00 RCX: ffffc9000c202000 RDX: 0000000000040000 RSI: ffffffff8150eb46 RDI: 0000000000000001 RBP: 0000000000000086 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 61636f6c5f776172 R12: 00000000000bf5a0 R13: ffff888019781680 R14: ffff888019800808 R15: 000000000000007e FS: 0000000000000000(0000) GS:ffff88802c300000(0063) knlGS:00000000f5f0bb40 CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 CR2: 0000000020032000 CR3: 0000000053f02000 CR4: 0000000000350ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:151 [inline] _raw_spin_unlock_irqrestore+0x6d/0x80 kernel/locking/spinlock.c:194 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] __iova_rcache_get drivers/iommu/iova.c:846 [inline] iova_rcache_get drivers/iommu/iova.c:865 [inline] alloc_iova_fast+0x37e/0xa30 drivers/iommu/iova.c:391 iommu_dma_alloc_iova+0x2e6/0x450 drivers/iommu/dma-iommu.c:795 iommu_dma_map_sg+0x765/0xc80 drivers/iommu/dma-iommu.c:1444 __dma_map_sg_attrs+0xd6/0x230 kernel/dma/mapping.c:201 dma_map_sg_attrs+0x34/0x50 kernel/dma/mapping.c:236 ata_sg_setup drivers/ata/libata-core.c:4741 [inline] ata_qc_issue+0x81a/0xf50 drivers/ata/libata-core.c:5043 ata_scsi_translate drivers/ata/libata-scsi.c:1717 [inline] __ata_scsi_queuecmd+0x9b6/0x1300 drivers/ata/libata-scsi.c:4153 ata_scsi_queuecmd+0xac/0x160 drivers/ata/libata-scsi.c:4198 scsi_dispatch_cmd drivers/scsi/scsi_lib.c:1610 [inline] scsi_queue_rq+0x12af/0x3620 drivers/scsi/scsi_lib.c:1852 blk_mq_dispatch_rq_list+0x452/0x2030 block/blk-mq.c:2058 __blk_mq_do_dispatch_sched block/blk-mq-sched.c:170 [inline] blk_mq_do_dispatch_sched block/blk-mq-sched.c:184 [inline] __blk_mq_sched_dispatch_requests+0xcdf/0x1620 block/blk-mq-sched.c:309 blk_mq_sched_dispatch_requests+0xd4/0x150 block/blk-mq-sched.c:331 blk_mq_run_hw_queue+0x645/0x9a0 block/blk-mq.c:2273 blk_mq_dispatch_plug_list block/blk-mq.c:2774 [inline] blk_mq_flush_plug_list.part.0+0x611/0x1d90 block/blk-mq.c:2822 blk_mq_flush_plug_list block/blk-mq.c:1296 [inline] blk_add_rq_to_plug+0x117/0x540 block/blk-mq.c:1299 blk_mq_submit_bio+0x1602/0x20f0 block/blk-mq.c:3014 __submit_bio+0xfd/0x310 block/blk-core.c:619 __submit_bio_noacct_mq block/blk-core.c:698 [inline] submit_bio_noacct_nocheck+0x98a/0xd50 block/blk-core.c:727 submit_bio_noacct+0x746/0x1ba0 block/blk-core.c:837 ext4_io_submit+0xa6/0x140 fs/ext4/page-io.c:378 ext4_do_writepages+0xf0f/0x3250 fs/ext4/inode.c:2699 ext4_writepages+0x303/0x730 fs/ext4/inode.c:2768 do_writepages+0x1a3/0x7f0 mm/page-writeback.c:2612 filemap_fdatawrite_wbc mm/filemap.c:397 [inline] filemap_fdatawrite_wbc+0x148/0x1c0 mm/filemap.c:387 __filemap_fdatawrite_range+0xba/0x100 mm/filemap.c:430 file_write_and_wait_range+0xd0/0x140 mm/filemap.c:788 ext4_sync_file+0x296/0xf30 fs/ext4/fsync.c:158 vfs_fsync_range+0x141/0x230 fs/sync.c:188 generic_write_sync include/linux/fs.h:2793 [inline] ext4_buffered_write_iter+0x2e6/0x3d0 fs/ext4/file.c:305 ext4_file_write_iter+0x874/0x1a40 fs/ext4/file.c:698 call_write_iter include/linux/fs.h:2108 [inline] new_sync_write fs/read_write.c:497 [inline] vfs_write+0x6db/0x1100 fs/read_write.c:590 ksys_write+0x12f/0x260 fs/read_write.c:643 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline] __do_fast_syscall_32+0x7a/0x120 arch/x86/entry/common.c:321 do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:346 entry_SYSENTER_compat_after_hwframe+0x7a/0x84 RIP: 0023:0xf7311579 Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 RSP: 002b:00000000f5f0b5ac EFLAGS: 00000292 ORIG_RAX: 0000000000000004 RAX: ffffffffffffffda RBX: 0000000000000008 RCX: 00000000200003c0 RDX: 0000000000032600 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 ---------------- Code disassembly (best guess), 2 bytes skipped: 0: 10 06 adc %al,(%rsi) 2: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi 6: 10 07 adc %al,(%rdi) 8: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi c: 10 08 adc %cl,(%rax) e: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi 1e: 00 51 52 add %dl,0x52(%rcx) 21: 55 push %rbp 22: 89 e5 mov %esp,%ebp 24: 0f 34 sysenter 26: cd 80 int $0x80 * 28: 5d pop %rbp <-- trapping instruction 29: 5a pop %rdx 2a: 59 pop %rcx 2b: c3 ret 2c: 90 nop 2d: 90 nop 2e: 90 nop 2f: 90 nop 30: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi 37: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi