syzbot
general protection fault in comedi_get_is_subdevice_running
Status:
upstream: reported on 2026/05/21 15:30
Subsystems:
comedi
Labels:
prio:low
[Documentation on labels]
Reported-by: syzbot+f24c3d5d316011bacc70@syzkaller.appspotmail.com
Fix commit:
17221216ae8c
comedi: comedi_parport: deal with premature interrupt
Patched on: [ci-qemu-gce-upstream-auto 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-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], missing on: [ci-qemu-native-arm64-kvm ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-linux-next-kasan-gce-root ci-upstream-rust-kasan-gce]
First crash: 75d, last: 75d
Sample crash report:
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000014: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range [0x00000000000000a0-0x00000000000000a7]
CPU: 0 UID: 0 PID: 18526 Comm: irq/7-comedi_pa Tainted: G L syzkaller #0 PREEMPT_{RT,(full)}
Tainted: [L]=SOFTLOCKUP
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026
RIP: 0010:kasan_byte_accessible+0x12/0x30 mm/kasan/generic.c:210
Code: 79 ff ff ff 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 40 d6 48 c1 ef 03 48 b8 00 00 00 00 00 fc ff df <0f> b6 04 07 3c 08 0f 92 c0 e9 80 cc 08 09 cc 66 66 66 66 66 66 2e
RSP: 0018:ffffc9000477f9a0 EFLAGS: 00010206
RAX: dffffc0000000000 RBX: ffffffff8b35f873 RCX: 0000000080000001
RDX: 0000000000000000 RSI: ffffffff8b35f873 RDI: 0000000000000014
RBP: ffffffff888f752a R08: 0000000000000001 R09: 0000000000000000
R10: dffffc0000000000 R11: ffffffff88920660 R12: 0000000000000000
R13: 00000000000000a0 R14: 00000000000000a0 R15: 0000000000000001
FS: 0000000000000000(0000) GS:ffff888125cc7000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff47d8456b8 CR3: 0000000029342000 CR4: 00000000003526f0
Call Trace:
<TASK>
__kasan_check_byte+0x12/0x40 mm/kasan/common.c:573
kasan_check_byte include/linux/kasan.h:402 [inline]
lock_acquire+0x84/0x350 kernel/locking/lockdep.c:5844
rt_spin_lock+0x83/0x400 kernel/locking/spinlock_rt.c:56
spin_lock include/linux/spinlock_rt.h:45 [inline]
comedi_get_is_subdevice_running+0x2a/0x130 drivers/comedi/comedi_fops.c:715
comedi_buf_write_samples+0x29/0x5f0 drivers/comedi/comedi_buf.c:676
parport_interrupt+0x105/0x160 drivers/comedi/drivers/comedi_parport.c:218
irq_thread_fn kernel/irq/manage.c:1143 [inline]
irq_forced_thread_fn+0x98/0x120 kernel/irq/manage.c:1165
irq_thread+0x47e/0x6e0 kernel/irq/manage.c:1271
kthread+0x388/0x470 kernel/kthread.c:436
ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:kasan_byte_accessible+0x12/0x30 mm/kasan/generic.c:210
Code: 79 ff ff ff 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 40 d6 48 c1 ef 03 48 b8 00 00 00 00 00 fc ff df <0f> b6 04 07 3c 08 0f 92 c0 e9 80 cc 08 09 cc 66 66 66 66 66 66 2e
RSP: 0018:ffffc9000477f9a0 EFLAGS: 00010206
RAX: dffffc0000000000 RBX: ffffffff8b35f873 RCX: 0000000080000001
RDX: 0000000000000000 RSI: ffffffff8b35f873 RDI: 0000000000000014
RBP: ffffffff888f752a R08: 0000000000000001 R09: 0000000000000000
R10: dffffc0000000000 R11: ffffffff88920660 R12: 0000000000000000
R13: 00000000000000a0 R14: 00000000000000a0 R15: 0000000000000001
FS: 0000000000000000(0000) GS:ffff888125cc7000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff47d8456b8 CR3: 0000000029342000 CR4: 00000000003526f0
----------------
Code disassembly (best guess), 4 bytes skipped:
0: 0f 1f 40 00 nopl 0x0(%rax)
4: 90 nop
5: 90 nop
6: 90 nop
7: 90 nop
8: 90 nop
9: 90 nop
a: 90 nop
b: 90 nop
c: 90 nop
d: 90 nop
e: 90 nop
f: 90 nop
10: 90 nop
11: 90 nop
12: 90 nop
13: 90 nop
14: 0f 1f 40 d6 nopl -0x2a(%rax)
18: 48 c1 ef 03 shr $0x3,%rdi
1c: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
23: fc ff df
* 26: 0f b6 04 07 movzbl (%rdi,%rax,1),%eax <-- trapping instruction
2a: 3c 08 cmp $0x8,%al
2c: 0f 92 c0 setb %al
2f: e9 80 cc 08 09 jmp 0x908ccb4
34: cc int3
35: 66 data16
36: 66 data16
37: 66 data16
38: 66 data16
39: 66 data16
3a: 66 data16
3b: 2e cs
* Struck through repros no longer work on HEAD.