syzbot


general protection fault in unpin_user_pages_dirty_lock

Status: internal: reported C repro on 2025/09/07 18:12
Subsystems: mm
[Documentation on labels]
Fix commit: mm/gup: remove record_subpages()
Patched on: [ci-upstream-linux-next-kasan-gce-root ci-upstream-rust-kasan-gce], missing on: [ci-qemu-gce-upstream-auto ci-qemu-native-arm64-kvm ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-qemu2-riscv64 ci-snapshot-upstream-root ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-gce-leak ci-upstream-kasan-badwrites-root ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kasan-gce-smack-root ci-upstream-kmsan-gce-386-root ci-upstream-kmsan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci2-upstream-fs ci2-upstream-kcsan-gce ci2-upstream-usb]
First crash: 17d, last: 17d
Last patch testing requests (3)
Created Duration User Patch Repo Result
2025/09/21 23:03 25m retest repro linux-next OK log
2025/09/21 23:03 25m retest repro linux-next OK log
2025/09/21 23:03 26m retest repro linux-next OK log

Sample crash report:
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
CPU: 0 UID: 0 PID: 6068 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:_compound_head include/linux/page-flags.h:284 [inline]
RIP: 0010:gup_folio_next mm/gup.c:255 [inline]
RIP: 0010:unpin_user_pages_dirty_lock+0x91/0x510 mm/gup.c:303
Code: 00 fc ff df 80 3c 08 00 74 08 4c 89 ff e8 e7 47 1c 00 4d 8b 3f 4d 8d 67 08 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 4c 89 e7 e8 c1 47 1c 00 4d 8b 24 24 4c 89 e6 48
RSP: 0018:ffffc900039af4d8 EFLAGS: 00010202
RAX: 0000000000000001 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: 0000000000000001 R08: ffffea0001650037 R09: 1ffffd40002ca006
R10: dffffc0000000000 R11: fffff940002ca007 R12: 0000000000000008
R13: ffff88805ec30210 R14: ffffc900039af5a0 R15: 0000000000000000
FS:  000055557bfff500(0000) GS:ffff8881257ba000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055695bcaa950 CR3: 00000000739a6000 CR4: 00000000003526f0
Call Trace:
 <TASK>
 rds_rdma_free_op+0x1ec/0x390 net/rds/rdma.c:504
 rds_cmsg_rdma_args+0x32b/0x1240 net/rds/rdma.c:800
 rds_cmsg_send+0x33d/0x5c0 net/rds/send.c:1004
 rds_sendmsg+0x1129/0x1f00 net/rds/send.c:1314
 sock_sendmsg_nosec net/socket.c:714 [inline]
 __sock_sendmsg+0x219/0x270 net/socket.c:729
 ____sys_sendmsg+0x505/0x830 net/socket.c:2614
 ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668
 __sys_sendmsg net/socket.c:2700 [inline]
 __do_sys_sendmsg net/socket.c:2705 [inline]
 __se_sys_sendmsg net/socket.c:2703 [inline]
 __x64_sys_sendmsg+0x19b/0x260 net/socket.c:2703
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7feaedf8ebe9
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:00007ffe82a82fa8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007feaee1c5fa0 RCX: 00007feaedf8ebe9
RDX: 0000000000000000 RSI: 0000200000001600 RDI: 0000000000000003
RBP: 00007feaee011e19 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007feaee1c5fa0 R14: 00007feaee1c5fa0 R15: 0000000000000003
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:_compound_head include/linux/page-flags.h:284 [inline]
RIP: 0010:gup_folio_next mm/gup.c:255 [inline]
RIP: 0010:unpin_user_pages_dirty_lock+0x91/0x510 mm/gup.c:303
Code: 00 fc ff df 80 3c 08 00 74 08 4c 89 ff e8 e7 47 1c 00 4d 8b 3f 4d 8d 67 08 4c 89 e0 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 4c 89 e7 e8 c1 47 1c 00 4d 8b 24 24 4c 89 e6 48
RSP: 0018:ffffc900039af4d8 EFLAGS: 00010202
RAX: 0000000000000001 RBX: 0000000000000001 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: 0000000000000001 R08: ffffea0001650037 R09: 1ffffd40002ca006
R10: dffffc0000000000 R11: fffff940002ca007 R12: 0000000000000008
R13: ffff88805ec30210 R14: ffffc900039af5a0 R15: 0000000000000000
FS:  000055557bfff500(0000) GS:ffff8881257ba000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055695bcc0138 CR3: 00000000739a6000 CR4: 00000000003526f0
----------------
Code disassembly (best guess), 3 bytes skipped:
   0:	df 80 3c 08 00 74    	filds  0x7400083c(%rax)
   6:	08 4c 89 ff          	or     %cl,-0x1(%rcx,%rcx,4)
   a:	e8 e7 47 1c 00       	call   0x1c47f6
   f:	4d 8b 3f             	mov    (%r15),%r15
  12:	4d 8d 67 08          	lea    0x8(%r15),%r12
  16:	4c 89 e0             	mov    %r12,%rax
  19:	48 c1 e8 03          	shr    $0x3,%rax
  1d:	48 b9 00 00 00 00 00 	movabs $0xdffffc0000000000,%rcx
  24:	fc ff df
* 27:	80 3c 08 00          	cmpb   $0x0,(%rax,%rcx,1) <-- trapping instruction
  2b:	74 08                	je     0x35
  2d:	4c 89 e7             	mov    %r12,%rdi
  30:	e8 c1 47 1c 00       	call   0x1c47f6
  35:	4d 8b 24 24          	mov    (%r12),%r12
  39:	4c 89 e6             	mov    %r12,%rsi
  3c:	48                   	rex.W

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/09/07 22:20 linux-next be5d4872e528 d291dd2d .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce general protection fault in unpin_user_pages_dirty_lock
2025/09/07 20:50 linux-next be5d4872e528 d291dd2d .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce general protection fault in unpin_user_pages_dirty_lock
2025/09/07 19:06 linux-next be5d4872e528 d291dd2d .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce general protection fault in unpin_user_pages_dirty_lock
2025/09/07 18:11 linux-next be5d4872e528 d291dd2d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce general protection fault in unpin_user_pages_dirty_lock
* Struck through repros no longer work on HEAD.