syzbot


BUG: sleeping function called from invalid context in unmap_mapping_folio

Status: auto-obsoleted due to no activity on 2025/03/16 23:49
Subsystems: block
[Documentation on labels]
Reported-by: syzbot+95f1db35defd8524f1dd@syzkaller.appspotmail.com
First crash: 52d, last: 51d
Cause bisection: introduced by (bisect log) :
commit 1760a1b5aacbe00dec464b1bf2b10443c10377ad
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date: Thu Jan 30 10:00:45 2025 +0000

  mm/vmscan: use PG_dropbehind instead of PG_reclaim in shrink_folio_list()

Crash: BUG: sleeping function called from invalid context in unmap_mapping_folio (log)
Repro: C syz .config
  
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [block?] BUG: sleeping function called from invalid context in unmap_mapping_folio 0 (2) 2025/02/05 05:58
Last patch testing requests (2)
Created Duration User Patch Repo Result
2025/02/19 03:51 25m retest repro linux-next OK log
2025/02/19 03:51 27m retest repro linux-next OK log

Sample crash report:
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:
 <TASK>
 __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
 </TASK>

=============================
[ 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:
 <TASK>
 __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
 </TASK>
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:
 <TASK>
 __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
 </TASK>

Crashes (19):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/02/04 23:48 linux-next 40b8e93e17bf 4baca3d6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 21:30 linux-next 40b8e93e17bf 4baca3d6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 21:30 linux-next 40b8e93e17bf 4baca3d6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 21:29 linux-next 40b8e93e17bf 4baca3d6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 15:01 linux-next 40b8e93e17bf 8f267cef .config strace log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 13:55 linux-next 40b8e93e17bf 8f267cef .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 12:46 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 12:32 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 12:32 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 10:23 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 09:06 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 09:06 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 08:55 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 08:54 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 08:22 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 07:57 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 07:57 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 07:27 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
2025/02/04 07:27 linux-next 40b8e93e17bf 8f267cef .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root BUG: sleeping function called from invalid context in unmap_mapping_folio
* Struck through repros no longer work on HEAD.