WARNING in exfat_bdev_read

From: syzbot
Date: Wed Nov 27 2019 - 00:25:12 EST


Hello,

syzbot found the following crash on:

HEAD commit: b9d3d014 Add linux-next specific files for 20191122
git tree: linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=12348dcee00000
kernel config: https://syzkaller.appspot.com/x/.config?x=6c24c45ce29b175c
dashboard link: https://syzkaller.appspot.com/bug?extid=1930da7118e99b06e4ab
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1541a716e00000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=128ff38ce00000

The bug was bisected to:

commit c48c9f7ff32b8b3965a08e40eb6763682d905b5d
Author: Valdis KlÄtnieks <valdis.kletnieks@xxxxxx>
Date: Wed Aug 28 16:08:17 2019 +0000

staging: exfat: add exfat filesystem code to staging

bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=15476b5ae00000
final crash: https://syzkaller.appspot.com/x/report.txt?x=17476b5ae00000
console output: https://syzkaller.appspot.com/x/log.txt?x=13476b5ae00000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+1930da7118e99b06e4ab@xxxxxxxxxxxxxxxxxxxxxxxxx
Fixes: c48c9f7ff32b ("staging: exfat: add exfat filesystem code to staging")

[EXFAT] trying to mount...
------------[ cut here ]------------
[EXFAT] No bh, device seems wrong or to be ejected.
WARNING: CPU: 1 PID: 8844 at drivers/staging/exfat/exfat_blkdev.c:62 exfat_bdev_read+0x24f/0x2b0 drivers/staging/exfat/exfat_blkdev.c:62
Kernel panic - not syncing: panic_on_warn set ...
CPU: 1 PID: 8844 Comm: syz-executor735 Not tainted 5.4.0-rc8-next-20191122-syzkaller #0
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+0x197/0x210 lib/dump_stack.c:118
panic+0x2e3/0x75c kernel/panic.c:221
__warn.cold+0x2f/0x35 kernel/panic.c:582
report_bug+0x289/0x300 lib/bug.c:195
fixup_bug arch/x86/kernel/traps.c:174 [inline]
fixup_bug arch/x86/kernel/traps.c:169 [inline]
do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:267
do_invalid_op+0x37/0x50 arch/x86/kernel/traps.c:286
invalid_op+0x23/0x30 arch/x86/entry/entry_64.S:1027
RIP: 0010:exfat_bdev_read+0x24f/0x2b0 drivers/staging/exfat/exfat_blkdev.c:62
Code: 00 00 31 ff 41 bc fb ff ff ff 89 de e8 aa 3e f7 fb 85 db 0f 85 5d ff ff ff e8 1d 3d f7 fb 48 c7 c7 a0 a6 3e 88 e8 89 31 c8 fb <0f> 0b e9 45 ff ff ff e8 25 c9 33 fc e9 ad fe ff ff e8 db c8 33 fc
RSP: 0018:ffff8880a73dfaa0 EFLAGS: 00010282
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff815d88c6 RDI: ffffed1014e7bf46
RBP: ffff8880a73dfad8 R08: ffff8880951821c0 R09: ffffed1015d26621
R10: ffffed1015d26620 R11: ffff8880ae933107 R12: 00000000fffffffb
R13: ffff88808aea0000 R14: 0000000000000001 R15: 0000000000000000
sector_read+0x140/0x1f0 drivers/staging/exfat/exfat_core.c:2537
ffsMountVol drivers/staging/exfat/exfat_super.c:376 [inline]
exfat_fill_super.cold+0x2e4/0x895 drivers/staging/exfat/exfat_super.c:3716
mount_bdev+0x304/0x3c0 fs/super.c:1415
exfat_fs_mount+0x35/0x40 drivers/staging/exfat/exfat_super.c:3772
legacy_get_tree+0x108/0x220 fs/fs_context.c:647
vfs_get_tree+0x8e/0x300 fs/super.c:1545
do_new_mount fs/namespace.c:2822 [inline]
do_mount+0x135a/0x1b50 fs/namespace.c:3142
ksys_mount+0xdb/0x150 fs/namespace.c:3351
__do_sys_mount fs/namespace.c:3365 [inline]
__se_sys_mount fs/namespace.c:3362 [inline]
__x64_sys_mount+0xbe/0x150 fs/namespace.c:3362
do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x440179
Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 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 0f 83 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ffe8f77ffc8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0030656c69662f2e RCX: 0000000000440179
RDX: 0000000020000080 RSI: 0000000020000180 RDI: 0000000020000000
RBP: 00000000006ca018 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000004000 R11: 0000000000000246 R12: 0000000000401a00
R13: 0000000000401a90 R14: 0000000000000000 R15: 0000000000000000
Kernel Offset: disabled
Rebooting in 86400 seconds..


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxxx

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
For information about bisection process see: https://goo.gl/tpsmEJ#bisection
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches