WARNING: locking bug in split_huge_page_to_list

From: syzbot
Date: Tue Apr 23 2019 - 12:13:09 EST


Hello,

syzbot found the following crash on:

HEAD commit: e53f31bf Merge tag '5.1-rc5-smb3-fixes' of git://git.samba..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=14ecb7e3200000
kernel config: https://syzkaller.appspot.com/x/.config?x=856fc6d0fbbeede9
dashboard link: https://syzkaller.appspot.com/bug?extid=35a50f1f6dfd5a0d7378
compiler: gcc (GCC) 9.0.0 20181231 (experimental)

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+35a50f1f6dfd5a0d7378@xxxxxxxxxxxxxxxxxxxxxxxxx

------------[ cut here ]------------
DEBUG_LOCKS_WARN_ON(class_idx > MAX_LOCKDEP_KEYS)
WARNING: CPU: 0 PID: 1553 at kernel/locking/lockdep.c:3673 __lock_acquire+0x1887/0x3fb0 kernel/locking/lockdep.c:3673
Kernel panic - not syncing: panic_on_warn set ...
CPU: 0 PID: 1553 Comm: kswapd0 Not tainted 5.1.0-rc5+ #74
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+0x2cb/0x65c kernel/panic.c:214
__warn.cold+0x20/0x45 kernel/panic.c:571
report_bug+0x263/0x2b0 lib/bug.c:186
fixup_bug arch/x86/kernel/traps.c:179 [inline]
fixup_bug arch/x86/kernel/traps.c:174 [inline]
do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:272
do_invalid_op+0x37/0x50 arch/x86/kernel/traps.c:291
invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:973
RIP: 0010:__lock_acquire+0x1887/0x3fb0 kernel/locking/lockdep.c:3673
Code: d2 0f 85 7b 1f 00 00 44 8b 3d 29 0d 07 08 45 85 ff 0f 85 20 f3 ff ff 48 c7 c6 80 3f 6b 87 48 c7 c7 c0 15 6b 87 e8 67 e3 eb ff <0f> 0b e9 09 f3 ff ff 0f 0b e9 41 f1 ff ff 8b 1d c5 32 05 09 85 db
RSP: 0018:ffff8880a621f448 EFLAGS: 00010086
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff815afcb6 RDI: ffffed1014c43e7b
RBP: ffff8880a621f580 R08: ffff8880a625e440 R09: fffffbfff11335fd
R10: fffffbfff11335fc R11: ffffffff8899afe3 R12: 00000000692b29d5
R13: 0000000000000009 R14: 00000000000409d5 R15: 0000000000000000
lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4211
down_write+0x38/0x90 kernel/locking/rwsem.c:70
anon_vma_lock_write include/linux/rmap.h:120 [inline]
split_huge_page_to_list+0x5d7/0x2de0 mm/huge_memory.c:2682
split_huge_page include/linux/huge_mm.h:148 [inline]
deferred_split_scan+0x64b/0xa60 mm/huge_memory.c:2853
do_shrink_slab+0x400/0xa80 mm/vmscan.c:551
shrink_slab mm/vmscan.c:700 [inline]
shrink_slab+0x4be/0x5e0 mm/vmscan.c:680
shrink_node+0x552/0x1570 mm/vmscan.c:2724
kswapd_shrink_node mm/vmscan.c:3482 [inline]
balance_pgdat+0x56c/0xe80 mm/vmscan.c:3640
kswapd+0x5f4/0xfd0 mm/vmscan.c:3895
kthread+0x357/0x430 kernel/kthread.c:253
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352
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.