syzbot has found a reproducer for the following crash on:
HEAD commit: 4d552acf Linux 4.19.34
git tree: linux-4.19.y
console output:
https://syzkaller.appspot.com/x/log.txt?x=15c05acb200000
syz repro:
https://syzkaller.appspot.com/x/repro.syz?x=1009952d200000
8021q: adding VLAN 0 to HW filter on device batadv0
IPv6: ADDRCONF(NETDEV_UP): vxcan1: link is not ready
8021q: adding VLAN 0 to HW filter on device batadv0
------------[ cut here ]------------
generic_make_request: Trying to write to read-only block-device loop2
(partno 0)
WARNING: CPU: 1 PID: 7977 at block/blk-core.c:2171 bio_check_ro
block/blk-core.c:2171 [inline]
WARNING: CPU: 1 PID: 7977 at block/blk-core.c:2171
generic_make_request_checks+0x2006/0x2550 block/blk-core.c:2276
Kernel panic - not syncing: panic_on_warn set ...
CPU: 1 PID: 7977 Comm: syz-executor.3 Not tainted 4.19.34 #2
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x172/0x1f0 lib/dump_stack.c:113
panic+0x263/0x51d kernel/panic.c:185
__warn.cold+0x20/0x54 kernel/panic.c:540
report_bug+0x263/0x2b0 lib/bug.c:186
fixup_bug arch/x86/kernel/traps.c:178 [inline]
fixup_bug arch/x86/kernel/traps.c:173 [inline]
do_error_trap+0x204/0x360 arch/x86/kernel/traps.c:296
do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:316
invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:997
RIP: 0010:bio_check_ro block/blk-core.c:2171 [inline]
RIP: 0010:generic_make_request_checks+0x2006/0x2550 block/blk-core.c:2276
Code: 85 48 05 00 00 45 8b b6 e4 04 00 00 48 8d 73 a0 4c 89 e7 e8 cc 57 06
00 48 c7 c7 e0 fe 7f 87 48 89 c6 44 89 f2 e8 b8 cd 2f fe <0f> 0b 48 8b 95
30 ff ff ff 48 b8 00 00 00 00 00 fc ff df 48 c1 ea
RSP: 0018:ffff88809e9b6ca8 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff88809e9b6d78 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff8155d206 RDI: ffffed1013d36d87
RBP: ffff88809e9b6da0 R08: ffff8880a0346040 R09: ffffed1015d24fe9
R10: ffffed1015d24fe8 R11: ffff8880ae927f47 R12: ffff8880a0090c00
R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000
generic_make_request+0x24c/0x12d0 block/blk-core.c:2400
submit_bio+0xba/0x480 block/blk-core.c:2565
kobject: 'loop1' (000000000f250b5e): kobject_uevent_env
kobject: 'loop1' (000000000f250b5e): fill_kobj_path: path
= '/devices/virtual/block/loop1'
submit_bh_wbc+0x5dc/0x790 fs/buffer.c:3095
kobject: 'loop4' (00000000c3c23751): kobject_uevent_env
__block_write_full_page+0x771/0x1020 fs/buffer.c:1766
block_write_full_page+0x21f/0x270 fs/buffer.c:2956
kobject: 'loop4' (00000000c3c23751): fill_kobj_path: path
= '/devices/virtual/block/loop4'
blkdev_writepage+0x25/0x30 fs/block_dev.c:581
__writepage+0x67/0xe0 mm/page-writeback.c:2308
kobject: 'loop1' (000000000f250b5e): kobject_uevent_env
write_cache_pages+0x974/0x1670 mm/page-writeback.c:2240
kobject: 'loop1' (000000000f250b5e): fill_kobj_path: path
= '/devices/virtual/block/loop1'
kobject: 'loop4' (00000000c3c23751): kobject_uevent_env
generic_writepages mm/page-writeback.c:2332 [inline]
generic_writepages+0xe6/0x160 mm/page-writeback.c:2321
kobject: 'loop4' (00000000c3c23751): fill_kobj_path: path
= '/devices/virtual/block/loop4'
blkdev_writepages+0x1e/0x30 fs/block_dev.c:1965
do_writepages+0xf5/0x2a0 mm/page-writeback.c:2347
kobject: 'loop1' (000000000f250b5e): kobject_uevent_env
kobject: 'loop1' (000000000f250b5e): fill_kobj_path: path
= '/devices/virtual/block/loop1'
__filemap_fdatawrite_range+0x26d/0x340 mm/filemap.c:445
kobject: 'loop4' (00000000c3c23751): kobject_uevent_env
file_write_and_wait_range+0x9a/0x100 mm/filemap.c:753
kobject: 'loop4' (00000000c3c23751): fill_kobj_path: path
= '/devices/virtual/block/loop4'
blkdev_fsync+0x6c/0xd0 fs/block_dev.c:638
vfs_fsync_range+0x144/0x230 fs/sync.c:197
generic_write_sync include/linux/fs.h:2735 [inline]
blkdev_write_iter fs/block_dev.c:1926 [inline]
blkdev_write_iter+0x348/0x440 fs/block_dev.c:1901
kobject: 'loop1' (000000000f250b5e): kobject_uevent_env
call_write_iter include/linux/fs.h:1811 [inline]
do_iter_readv_writev+0x55d/0x830 fs/read_write.c:680
kobject: 'loop1' (000000000f250b5e): fill_kobj_path: path
= '/devices/virtual/block/loop1'
kobject: 'loop4' (00000000c3c23751): kobject_uevent_env
do_iter_write fs/read_write.c:959 [inline]
do_iter_write+0x184/0x600 fs/read_write.c:940
kobject: 'loop4' (00000000c3c23751): fill_kobj_path: path
= '/devices/virtual/block/loop4'
vfs_iter_write+0x77/0xb0 fs/read_write.c:972
kobject: 'loop1' (000000000f250b5e): kobject_uevent_env
iter_file_splice_write+0x667/0xbe0 fs/splice.c:750
kobject: 'loop1' (000000000f250b5e): fill_kobj_path: path
= '/devices/virtual/block/loop1'
do_splice_from fs/splice.c:852 [inline]
direct_splice_actor+0x126/0x1a0 fs/splice.c:1019
splice_direct_to_actor+0x2ea/0x890 fs/splice.c:974
kobject: 'loop0' (00000000a3d844b8): kobject_uevent_env
kobject: 'loop0' (00000000a3d844b8): fill_kobj_path: path
= '/devices/virtual/block/loop0'
do_splice_direct+0x1da/0x2a0 fs/splice.c:1062
do_sendfile+0x597/0xce0 fs/read_write.c:1446
__do_sys_sendfile64 fs/read_write.c:1507 [inline]
__se_sys_sendfile64 fs/read_write.c:1493 [inline]
__x64_sys_sendfile64+0x1dd/0x220 fs/read_write.c:1493
do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x458c29
Code: ad b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 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 0f 83 7b b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f06fde63c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 0000000000458c29
RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000003
RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000
R10: 0020000102000007 R11: 0000000000000246 R12: 00007f06fde646d4
R13: 00000000004c5e10 R14: 00000000004da5c8 R15: 00000000ffffffff