BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1523
in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 13055, name: syz.6.1872
preempt_count: 0, expected: 0
RCU nest depth: 1, expected: 0
2 locks held by syz.6.1872/13055:
#0: ffff888143b4b4c8 (&disk->open_mutex){+.+.}-{4:4}, at: bdev_open+0xf0/0xc50 block/bdev.c:903
#1: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline]
#1: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline]
#1: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: blk_mq_flush_plug_list+0x282/0x1870 block/blk-mq.c:2904
CPU: 1 UID: 0 PID: 13055 Comm: syz.6.1872 Not tainted 6.14.0-rc1-next-20250204-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
__might_resched+0x5d4/0x780 kernel/sched/core.c:8766
down_read+0x8e/0xa40 kernel/locking/rwsem.c:1523
i_mmap_lock_read include/linux/fs.h:565 [inline]
unmap_mapping_folio+0x284/0x3b0 mm/memory.c:3887
folio_unmap_invalidate+0x122/0x510 mm/truncate.c:557
folio_end_reclaim_write mm/filemap.c:1609 [inline]
folio_end_writeback+0x430/0x560 mm/filemap.c:1642
end_bio_bh_io_sync+0xbf/0x120 fs/buffer.c:2766
blk_update_request+0x5e5/0x1160 block/blk-mq.c:983
blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1145
nullb_complete_cmd drivers/block/null_blk/main.c:1354 [inline]
null_handle_cmd drivers/block/null_blk/main.c:1405 [inline]
null_queue_rq+0xbb1/0xd60 drivers/block/null_blk/main.c:1645
null_queue_rqs+0x1e7/0x370 drivers/block/null_blk/main.c:1659
__blk_mq_flush_plug_list block/blk-mq.c:2825 [inline]
blk_mq_flush_plug_list+0x56a/0x1870 block/blk-mq.c:2904
blk_add_rq_to_plug+0x1ad/0x4b0 block/blk-mq.c:1384
blk_mq_submit_bio+0xfb9/0x25a0 block/blk-mq.c:3157
__submit_bio+0x2cf/0x6a0 block/blk-core.c:628
__submit_bio_noacct_mq block/blk-core.c:715 [inline]
submit_bio_noacct_nocheck+0x4d3/0xe30 block/blk-core.c:744
__block_write_full_folio+0x8b1/0xed0 fs/buffer.c:1904
write_cache_pages+0xd0/0x230 mm/page-writeback.c:2644
blkdev_writepages+0xa9/0x100 block/fops.c:458
do_writepages+0x35f/0x880 mm/page-writeback.c:2687
filemap_fdatawrite_wbc mm/filemap.c:389 [inline]
__filemap_fdatawrite_range mm/filemap.c:422 [inline]
filemap_write_and_wait_range+0x283/0x3a0 mm/filemap.c:694
bdev_disk_changed+0x1f9/0x13f0 block/partitions/core.c:656
blkdev_get_whole+0x2d2/0x450 block/bdev.c:706
bdev_open+0x2d4/0xc50 block/bdev.c:915
bdev_file_open_by_dev+0x1b0/0x220 block/bdev.c:1017
disk_scan_partitions+0x1be/0x2b0 block/genhd.c:374
blkdev_common_ioctl+0x13cf/0x2460 block/ioctl.c:617
blkdev_ioctl+0x4ca/0x6a0 block/ioctl.c:687
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:906 [inline]
__se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fcce2f8cda9
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:00007fcce3d45038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007fcce31a6160 RCX: 00007fcce2f8cda9
RDX: 0000000000000000 RSI: 000000000000125f RDI: 0000000000000007
RBP: 00007fcce300e2a0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fcce31a6160 R15: 00007ffe6a619a18
=============================
[ BUG: Invalid wait context ]
6.14.0-rc1-next-20250204-syzkaller #0 Tainted: G W
-----------------------------
syz.6.1872/13055 is trying to lock:
ffff888148e92cf0 (&mapping->i_mmap_rwsem){++++}-{4:4}, at: i_mmap_lock_read include/linux/fs.h:565 [inline]
ffff888148e92cf0 (&mapping->i_mmap_rwsem){++++}-{4:4}, at: unmap_mapping_folio+0x284/0x3b0 mm/memory.c:3887
other info that might help us debug this:
context-{5:5}
2 locks held by syz.6.1872/13055:
#0: ffff888143b4b4c8 (&disk->open_mutex){+.+.}-{4:4}, at: bdev_open+0xf0/0xc50 block/bdev.c:903
#1: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline]
#1: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline]
#1: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: blk_mq_flush_plug_list+0x282/0x1870 block/blk-mq.c:2904
stack backtrace:
CPU: 0 UID: 0 PID: 13055 Comm: syz.6.1872 Tainted: G W 6.14.0-rc1-next-20250204-syzkaller #0
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
print_lock_invalid_wait_context kernel/locking/lockdep.c:4828 [inline]
check_wait_context kernel/locking/lockdep.c:4900 [inline]
__lock_acquire+0x15a8/0x2100 kernel/locking/lockdep.c:5178
lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851
down_read+0xb1/0xa40 kernel/locking/rwsem.c:1524
i_mmap_lock_read include/linux/fs.h:565 [inline]
unmap_mapping_folio+0x284/0x3b0 mm/memory.c:3887
folio_unmap_invalidate+0x122/0x510 mm/truncate.c:557
folio_end_reclaim_write mm/filemap.c:1609 [inline]
folio_end_writeback+0x430/0x560 mm/filemap.c:1642
end_bio_bh_io_sync+0xbf/0x120 fs/buffer.c:2766
blk_update_request+0x5e5/0x1160 block/blk-mq.c:983
blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1145
nullb_complete_cmd drivers/block/null_blk/main.c:1354 [inline]
null_handle_cmd drivers/block/null_blk/main.c:1405 [inline]
null_queue_rq+0xbb1/0xd60 drivers/block/null_blk/main.c:1645
null_queue_rqs+0x1e7/0x370 drivers/block/null_blk/main.c:1659
__blk_mq_flush_plug_list block/blk-mq.c:2825 [inline]
blk_mq_flush_plug_list+0x56a/0x1870 block/blk-mq.c:2904
blk_add_rq_to_plug+0x1ad/0x4b0 block/blk-mq.c:1384
blk_mq_submit_bio+0xfb9/0x25a0 block/blk-mq.c:3157
__submit_bio+0x2cf/0x6a0 block/blk-core.c:628
__submit_bio_noacct_mq block/blk-core.c:715 [inline]
submit_bio_noacct_nocheck+0x4d3/0xe30 block/blk-core.c:744
__block_write_full_folio+0x8b1/0xed0 fs/buffer.c:1904
write_cache_pages+0xd0/0x230 mm/page-writeback.c:2644
blkdev_writepages+0xa9/0x100 block/fops.c:458
do_writepages+0x35f/0x880 mm/page-writeback.c:2687
filemap_fdatawrite_wbc mm/filemap.c:389 [inline]
__filemap_fdatawrite_range mm/filemap.c:422 [inline]
filemap_write_and_wait_range+0x283/0x3a0 mm/filemap.c:694
bdev_disk_changed+0x1f9/0x13f0 block/partitions/core.c:656
blkdev_get_whole+0x2d2/0x450 block/bdev.c:706
bdev_open+0x2d4/0xc50 block/bdev.c:915
bdev_file_open_by_dev+0x1b0/0x220 block/bdev.c:1017
disk_scan_partitions+0x1be/0x2b0 block/genhd.c:374
blkdev_common_ioctl+0x13cf/0x2460 block/ioctl.c:617
blkdev_ioctl+0x4ca/0x6a0 block/ioctl.c:687
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:906 [inline]
__se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fcce2f8cda9
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:00007fcce3d45038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007fcce31a6160 RCX: 00007fcce2f8cda9
RDX: 0000000000000000 RSI: 000000000000125f RDI: 0000000000000007
RBP: 00007fcce300e2a0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fcce31a6160 R15: 00007ffe6a619a18
BUG: sleeping function called from invalid context at ./include/linux/mmu_notifier.h:434
in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 13055, name: syz.6.1872
preempt_count: 0, expected: 0
RCU nest depth: 1, expected: 0
INFO: lockdep is turned off.
CPU: 0 UID: 0 PID: 13055 Comm: syz.6.1872 Tainted: G W 6.14.0-rc1-next-20250204-syzkaller #0
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
__might_resched+0x5d4/0x780 kernel/sched/core.c:8766
mmu_notifier_invalidate_range_start include/linux/mmu_notifier.h:434 [inline]
zap_page_range_single+0x386/0x630 mm/memory.c:2015
unmap_mapping_range_vma mm/memory.c:3836 [inline]
unmap_mapping_range_tree+0xd7/0x120 mm/memory.c:3853
unmap_mapping_folio+0x30e/0x3b0 mm/memory.c:3889
folio_unmap_invalidate+0x122/0x510 mm/truncate.c:557
folio_end_reclaim_write mm/filemap.c:1609 [inline]
folio_end_writeback+0x430/0x560 mm/filemap.c:1642
end_bio_bh_io_sync+0xbf/0x120 fs/buffer.c:2766
blk_update_request+0x5e5/0x1160 block/blk-mq.c:983
blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1145
nullb_complete_cmd drivers/block/null_blk/main.c:1354 [inline]
null_handle_cmd drivers/block/null_blk/main.c:1405 [inline]
null_queue_rq+0xbb1/0xd60 drivers/block/null_blk/main.c:1645
null_queue_rqs+0x1e7/0x370 drivers/block/null_blk/main.c:1659
__blk_mq_flush_plug_list block/blk-mq.c:2825 [inline]
blk_mq_flush_plug_list+0x56a/0x1870 block/blk-mq.c:2904
blk_add_rq_to_plug+0x1ad/0x4b0 block/blk-mq.c:1384
blk_mq_submit_bio+0xfb9/0x25a0 block/blk-mq.c:3157
__submit_bio+0x2cf/0x6a0 block/blk-core.c:628
__submit_bio_noacct_mq block/blk-core.c:715 [inline]
submit_bio_noacct_nocheck+0x4d3/0xe30 block/blk-core.c:744
__block_write_full_folio+0x8b1/0xed0 fs/buffer.c:1904
write_cache_pages+0xd0/0x230 mm/page-writeback.c:2644
blkdev_writepages+0xa9/0x100 block/fops.c:458
do_writepages+0x35f/0x880 mm/page-writeback.c:2687
filemap_fdatawrite_wbc mm/filemap.c:389 [inline]
__filemap_fdatawrite_range mm/filemap.c:422 [inline]
filemap_write_and_wait_range+0x283/0x3a0 mm/filemap.c:694
bdev_disk_changed+0x1f9/0x13f0 block/partitions/core.c:656
blkdev_get_whole+0x2d2/0x450 block/bdev.c:706
bdev_open+0x2d4/0xc50 block/bdev.c:915
bdev_file_open_by_dev+0x1b0/0x220 block/bdev.c:1017
disk_scan_partitions+0x1be/0x2b0 block/genhd.c:374
blkdev_common_ioctl+0x13cf/0x2460 block/ioctl.c:617
blkdev_ioctl+0x4ca/0x6a0 block/ioctl.c:687
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:906 [inline]
__se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fcce2f8cda9
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:00007fcce3d45038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007fcce31a6160 RCX: 00007fcce2f8cda9
RDX: 0000000000000000 RSI: 000000000000125f RDI: 0000000000000007
RBP: 00007fcce300e2a0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fcce31a6160 R15: 00007ffe6a619a18