[syzbot] [block?] general protection fault in reset_interrupt (3)

From: syzbot
Date: Wed Apr 19 2023 - 02:05:11 EST


Hello,

syzbot found the following issue on:

HEAD commit: 95abc817ab3a Merge tag 'acpi-6.3-rc7' of git://git.kernel...
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=10f8677bc80000
kernel config: https://syzkaller.appspot.com/x/.config?x=90aa79dcf599c3f1
dashboard link: https://syzkaller.appspot.com/bug?extid=619e27617b2abe6b9b72
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2

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

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+619e27617b2abe6b9b72@xxxxxxxxxxxxxxxxxxxxxxxxx

c1 00 ..
status=80
fdc_busy=0
cont=0000000000000000
current_req=0000000000000000
command_status=-1
general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]
CPU: 3 PID: 5216 Comm: kworker/u16:3 Not tainted 6.3.0-rc6-syzkaller-00168-g95abc817ab3a #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
Workqueue: floppy floppy_work_workfn
RIP: 0010:reset_interrupt+0x17a/0x230 drivers/block/floppy.c:1789
Code: 6c d3 4a fc e9 0e ff ff ff e8 82 d8 66 fc 48 8b 1d 4b 30 ed 0c 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 10 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 80 00 00 00 48 8b 73 10 48 c7 c7 c0 c6 ce 8a e8
RSP: 0018:ffffc9000375fd08 EFLAGS: 00010202
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000002 RSI: ffffffff851b338e RDI: 0000000000000010
RBP: ffffffff8d44d380 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000000 R12: ffffc9000375fda8
R13: ffffffff8d44d390 R14: ffff88801d3d8000 R15: ffff888012479000
FS: 0000000000000000(0000) GS:ffff88802c900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fcacaedee08 CR3: 00000000496e5000 CR4: 0000000000150ee0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
process_one_work+0x991/0x15c0 kernel/workqueue.c:2390
worker_thread+0x669/0x1090 kernel/workqueue.c:2537
kthread+0x2e8/0x3a0 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:reset_interrupt+0x17a/0x230 drivers/block/floppy.c:1789
Code: 6c d3 4a fc e9 0e ff ff ff e8 82 d8 66 fc 48 8b 1d 4b 30 ed 0c 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 10 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 80 00 00 00 48 8b 73 10 48 c7 c7 c0 c6 ce 8a e8
RSP: 0018:ffffc9000375fd08 EFLAGS: 00010202
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000002 RSI: ffffffff851b338e RDI: 0000000000000010
RBP: ffffffff8d44d380 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000000 R12: ffffc9000375fda8
R13: ffffffff8d44d390 R14: ffff88801d3d8000 R15: ffff888012479000
FS: 0000000000000000(0000) GS:ffff88802c900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fcacaedee08 CR3: 00000000496e5000 CR4: 0000000000150ee0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: 6c insb (%dx),%es:(%rdi)
1: d3 4a fc rorl %cl,-0x4(%rdx)
4: e9 0e ff ff ff jmpq 0xffffff17
9: e8 82 d8 66 fc callq 0xfc66d890
e: 48 8b 1d 4b 30 ed 0c mov 0xced304b(%rip),%rbx # 0xced3060
15: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
1c: fc ff df
1f: 48 8d 7b 10 lea 0x10(%rbx),%rdi
23: 48 89 fa mov %rdi,%rdx
26: 48 c1 ea 03 shr $0x3,%rdx
* 2a: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) <-- trapping instruction
2e: 0f 85 80 00 00 00 jne 0xb4
34: 48 8b 73 10 mov 0x10(%rbx),%rsi
38: 48 c7 c7 c0 c6 ce 8a mov $0xffffffff8acec6c0,%rdi
3f: e8 .byte 0xe8


---
This report 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@xxxxxxxxxxxxxxxx.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.