syzbot


general protection fault in __handle_changed_spte

Status: auto-closed as invalid on 2022/03/02 18:16
Subsystems: kvm
[Documentation on labels]
Reported-by: syzbot+f71021d7f6fd3f650571@syzkaller.appspotmail.com
First crash: 897d, last: 897d

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 0 PID: 11286 Comm: syz-executor.2 Not tainted 5.16.0-rc3-syzkaller #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
RIP: 0010:__list_del_entry_valid+0x81/0xf0 lib/list_debug.c:51
Code: 0f 84 1f 16 31 05 48 b8 22 01 00 00 00 00 ad de 49 39 c4 0f 84 20 16 31 05 48 b8 00 00 00 00 00 fc ff df 4c 89 e2 48 c1 ea 03 <80> 3c 02 00 75 51 49 8b 14 24 48 39 ea 0f 85 d7 15 31 05 49 8d 7d
RSP: 0018:ffffc9000d93f318 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: 0000000000000001 RCX: ffffc900247a1000
RDX: 0000000000000000 RSI: ffffffff811d299b RDI: ffff888024cb35d8
RBP: ffff888024cb35d0 R08: 0000000000000001 R09: 0000000000000003
R10: fffff52001b27e59 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: ffff888024cb35d0 R15: 0000000000000001
FS:  0000000000000000(0000) GS:ffff88802ca00000(0063) knlGS:00000000f4436b40
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 000000002be27000 CR3: 0000000077988000 CR4: 0000000000152ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __list_del_entry include/linux/list.h:134 [inline]
 list_del include/linux/list.h:148 [inline]
 tdp_mmu_unlink_page arch/x86/kvm/mmu/tdp_mmu.c:289 [inline]
 handle_removed_tdp_mmu_page arch/x86/kvm/mmu/tdp_mmu.c:324 [inline]
 __handle_changed_spte+0x8dc/0x13e0 arch/x86/kvm/mmu/tdp_mmu.c:475
 tdp_mmu_set_spte_atomic arch/x86/kvm/mmu/tdp_mmu.c:522 [inline]
 tdp_mmu_set_spte_atomic arch/x86/kvm/mmu/tdp_mmu.c:501 [inline]
 tdp_mmu_zap_spte_atomic arch/x86/kvm/mmu/tdp_mmu.c:538 [inline]
 zap_gfn_range+0x5c8/0xee0 arch/x86/kvm/mmu/tdp_mmu.c:750
 kvm_tdp_mmu_zap_invalidated_roots+0x110/0x410 arch/x86/kvm/mmu/tdp_mmu.c:841
 kvm_mmu_zap_all_fast+0x5b8/0x760 arch/x86/kvm/mmu/mmu.c:5669
 kvm_page_track_flush_slot+0xfb/0x1a0 arch/x86/kvm/mmu/page_track.c:299
 kvm_set_memslot+0x665/0x1e50 arch/x86/kvm/../../../virt/kvm/kvm_main.c:1585
 __kvm_set_memory_region+0xd1e/0x13a0 arch/x86/kvm/../../../virt/kvm/kvm_main.c:1779
 kvm_set_memory_region arch/x86/kvm/../../../virt/kvm/kvm_main.c:1800 [inline]
 kvm_vm_ioctl_set_memory_region arch/x86/kvm/../../../virt/kvm/kvm_main.c:1812 [inline]
 kvm_vm_ioctl+0x512/0x23d0 arch/x86/kvm/../../../virt/kvm/kvm_main.c:4311
 kvm_vm_compat_ioctl+0x288/0x350 arch/x86/kvm/../../../virt/kvm/kvm_main.c:4536
 __do_compat_sys_ioctl+0x1c7/0x290 fs/ioctl.c:972
 do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline]
 __do_fast_syscall_32+0x65/0xf0 arch/x86/entry/common.c:178
 do_fast_syscall_32+0x2f/0x70 arch/x86/entry/common.c:203
 entry_SYSENTER_compat_after_hwframe+0x4d/0x5c
RIP: 0023:0xf6e7e549
Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00
RSP: 002b:00000000f44365fc EFLAGS: 00000296 ORIG_RAX: 0000000000000036
RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 000000004020ae46
RDX: 0000000020000040 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
 </TASK>
Modules linked in:
---[ end trace 2b51c81de60d8d0f ]---
RIP: 0010:__list_del_entry_valid+0x81/0xf0 lib/list_debug.c:51
Code: 0f 84 1f 16 31 05 48 b8 22 01 00 00 00 00 ad de 49 39 c4 0f 84 20 16 31 05 48 b8 00 00 00 00 00 fc ff df 4c 89 e2 48 c1 ea 03 <80> 3c 02 00 75 51 49 8b 14 24 48 39 ea 0f 85 d7 15 31 05 49 8d 7d
RSP: 0018:ffffc9000d93f318 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: 0000000000000001 RCX: ffffc900247a1000
RDX: 0000000000000000 RSI: ffffffff811d299b RDI: ffff888024cb35d8
RBP: ffff888024cb35d0 R08: 0000000000000001 R09: 0000000000000003
R10: fffff52001b27e59 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: ffff888024cb35d0 R15: 0000000000000001
FS:  0000000000000000(0000) GS:ffff88802ca00000(0063) knlGS:00000000f4436b40
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 000000002be27000 CR3: 0000000077988000 CR4: 0000000000152ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	0f 84 1f 16 31 05    	je     0x5311625
   6:	48 b8 22 01 00 00 00 	movabs $0xdead000000000122,%rax
   d:	00 ad de
  10:	49 39 c4             	cmp    %rax,%r12
  13:	0f 84 20 16 31 05    	je     0x5311639
  19:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
  20:	fc ff df
  23:	4c 89 e2             	mov    %r12,%rdx
  26:	48 c1 ea 03          	shr    $0x3,%rdx
* 2a:	80 3c 02 00          	cmpb   $0x0,(%rdx,%rax,1) <-- trapping instruction
  2e:	75 51                	jne    0x81
  30:	49 8b 14 24          	mov    (%r12),%rdx
  34:	48 39 ea             	cmp    %rbp,%rdx
  37:	0f 85 d7 15 31 05    	jne    0x5311614
  3d:	49                   	rex.WB
  3e:	8d                   	.byte 0x8d
  3f:	7d                   	.byte 0x7d

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2021/12/02 18:15 upstream 58e1100fdc59 61f86278 .config console log report info ci-qemu-upstream-386 general protection fault in __handle_changed_spte
* Struck through repros no longer work on HEAD.