* [syzbot] [kernel?] WARNING: proc registration bug in unregister_irq_proc (2)
@ 2026-07-25 22:42 syzbot
2026-07-27 14:22 ` Thomas Gleixner
0 siblings, 1 reply; 4+ messages in thread
From: syzbot @ 2026-07-25 22:42 UTC (permalink / raw)
To: linux-kernel, syzkaller-bugs, tglx
Hello,
syzbot found the following issue on:
HEAD commit: 3dab139d4795 Merge tag 'rust-fixes-7.2-2' of git://git.ker..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=156bd88e580000
kernel config: https://syzkaller.appspot.com/x/.config?x=145fa60d73086782
dashboard link: https://syzkaller.appspot.com/bug?extid=690d666eb12fca6e1e61
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
Unfortunately, I don't have any reproducer for this issue yet.
Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-3dab139d.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/2b5a401a9dc7/vmlinux-3dab139d.xz
kernel image: https://storage.googleapis.com/syzbot-assets/7ed2d255bd44/bzImage-3dab139d.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+690d666eb12fca6e1e61@syzkaller.appspotmail.com
------------[ cut here ]------------
remove_proc_entry: removing non-empty directory 'irq/20', leaking at least 'comedi_parport'
WARNING: fs/proc/generic.c:747 at remove_proc_entry+0x4e7/0x610 fs/proc/generic.c:747, CPU#1: syz.3.389/7224
Modules linked in:
CPU: 1 UID: 0 PID: 7224 Comm: syz.3.389 Tainted: G L syzkaller #0 PREEMPT(full)
Tainted: [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:remove_proc_entry+0x4f5/0x610 fs/proc/generic.c:747
Code: 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 c7 00 00 00 48 8d 3d e9 5f 6c 0e 49 8b 95 d0 00 00 00 48 c7 c6 40 00 ea 8b <67> 48 0f b9 3a e9 2a fe ff ff e8 0c ca 4d ff 48 8d 7d 18 48 b8 00
RSP: 0018:ffffc900054c7780 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: dffffc0000000000 RCX: ffff88801c7a2e9c
RDX: ffff88801c3a45dc RSI: ffffffff8bea0040 RDI: ffffffff9128f260
RBP: ffff88801c7a2e78 R08: ffff88803a22821c R09: ffffed10038f45bb
R10: ffff88801c7a2ddb R11: 0000000000000000 R12: ffff88801c7a2dc0
R13: ffff88801c3a4500 R14: ffff88803a2281f8 R15: dffffc0000000000
FS: 00007fc0e43926c0(0000) GS:ffff8880d5ede000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000200000001000 CR3: 0000000058a9a000 CR4: 0000000000352ef0
Call Trace:
<TASK>
unregister_irq_proc+0x206/0x2a0 kernel/irq/proc.c:406
free_desc+0x89/0x330 kernel/irq/irqdesc.c:482
irq_free_descs kernel/irq/irqdesc.c:874 [inline]
irq_free_descs+0x84/0xc0 kernel/irq/irqdesc.c:865
irq_domain_free_irqs+0x46a/0x5c0 kernel/irq/irqdomain.c:1917
mp_unmap_irq+0xf8/0x130 arch/x86/kernel/apic/io_apic.c:1061
acpi_unregister_gsi_ioapic+0x40/0x60 arch/x86/kernel/acpi/boot.c:722
acpi_unregister_gsi+0x25/0x40 arch/x86/kernel/acpi/boot.c:751
acpi_pci_irq_disable+0x275/0x360 drivers/acpi/pci_irq.c:517
pcibios_disable_device arch/x86/pci/common.c:706 [inline]
pcibios_disable_device+0x89/0xb0 arch/x86/pci/common.c:703
do_pci_disable_device+0x9f/0x100 drivers/pci/pci.c:2170
pci_disable_device+0x130/0x270 drivers/pci/pci.c:2206
pci_device_remove+0xb2/0x1d0 drivers/pci/pci-driver.c:512
device_remove+0xcb/0x180 drivers/base/dd.c:616
__device_release_driver drivers/base/dd.c:1349 [inline]
device_release_driver_internal+0x44e/0x620 drivers/base/dd.c:1372
unbind_store+0xf8/0x110 drivers/base/bus.c:244
drv_attr_store+0x74/0xb0 drivers/base/bus.c:125
sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145
kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345
new_sync_write fs/read_write.c:595 [inline]
vfs_write+0x6ac/0x1050 fs/read_write.c:687
ksys_write+0x12a/0x250 fs/read_write.c:739
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fc0e359de99
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 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 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fc0e4392028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007fc0e3825fa0 RCX: 00007fc0e359de99
RDX: 000000000000000c RSI: 0000200000001100 RDI: 0000000000000003
RBP: 00007fc0e3633eaf R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fc0e3826038 R14: 00007fc0e3825fa0 R15: 00007ffe30698be8
</TASK>
----------------
Code disassembly (best guess):
0: 00 fc add %bh,%ah
2: ff lcall (bad)
3: df 48 89 fisttps -0x77(%rax)
6: fa cli
7: 48 c1 ea 03 shr $0x3,%rdx
b: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1)
f: 0f 85 c7 00 00 00 jne 0xdc
15: 48 8d 3d e9 5f 6c 0e lea 0xe6c5fe9(%rip),%rdi # 0xe6c6005
1c: 49 8b 95 d0 00 00 00 mov 0xd0(%r13),%rdx
23: 48 c7 c6 40 00 ea 8b mov $0xffffffff8bea0040,%rsi
* 2a: 67 48 0f b9 3a ud1 (%edx),%rdi <-- trapping instruction
2f: e9 2a fe ff ff jmp 0xfffffe5e
34: e8 0c ca 4d ff call 0xff4dca45
39: 48 8d 7d 18 lea 0x18(%rbp),%rdi
3d: 48 rex.W
3e: b8 .byte 0xb8
---
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@googlegroups.com.
syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title
If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [syzbot] [kernel?] WARNING: proc registration bug in unregister_irq_proc (2)
2026-07-25 22:42 [syzbot] [kernel?] WARNING: proc registration bug in unregister_irq_proc (2) syzbot
@ 2026-07-27 14:22 ` Thomas Gleixner
2026-07-27 14:33 ` Greg Kroah-Hartman
2026-07-27 15:03 ` Ian Abbott
0 siblings, 2 replies; 4+ messages in thread
From: Thomas Gleixner @ 2026-07-27 14:22 UTC (permalink / raw)
To: syzbot, linux-kernel, syzkaller-bugs
Cc: Greg Kroah-Hartman, Danilo Krummrich, Rafael J. Wysocki,
driver-core, Bjorn Helgaas, linux-pci, Ian Abbott
On Sat, Jul 25 2026 at 15:42, syzbot wrote:
> HEAD commit: 3dab139d4795 Merge tag 'rust-fixes-7.2-2' of git://git.ker..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=156bd88e580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=145fa60d73086782
> dashboard link: https://syzkaller.appspot.com/bug?extid=690d666eb12fca6e1e61
> compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-3dab139d.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/2b5a401a9dc7/vmlinux-3dab139d.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/7ed2d255bd44/bzImage-3dab139d.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+690d666eb12fca6e1e61@syzkaller.appspotmail.com
> ------------[ cut here ]------------
> remove_proc_entry: removing non-empty directory 'irq/20', leaking at least 'comedi_parport'
> WARNING: fs/proc/generic.c:747 at remove_proc_entry+0x4e7/0x610 fs/proc/generic.c:747, CPU#1: syz.3.389/7224
So this frees an interupt descriptor, which still has an active
interrupt request on it.
> Modules linked in:
> CPU: 1 UID: 0 PID: 7224 Comm: syz.3.389 Tainted: G L syzkaller #0 PREEMPT(full)
> unregister_irq_proc+0x206/0x2a0 kernel/irq/proc.c:406
> free_desc+0x89/0x330 kernel/irq/irqdesc.c:482
> irq_free_descs kernel/irq/irqdesc.c:874 [inline]
> irq_free_descs+0x84/0xc0 kernel/irq/irqdesc.c:865
> irq_domain_free_irqs+0x46a/0x5c0 kernel/irq/irqdomain.c:1917
> mp_unmap_irq+0xf8/0x130 arch/x86/kernel/apic/io_apic.c:1061
> acpi_unregister_gsi_ioapic+0x40/0x60 arch/x86/kernel/acpi/boot.c:722
> acpi_unregister_gsi+0x25/0x40 arch/x86/kernel/acpi/boot.c:751
> acpi_pci_irq_disable+0x275/0x360 drivers/acpi/pci_irq.c:517
> pcibios_disable_device arch/x86/pci/common.c:706 [inline]
> pcibios_disable_device+0x89/0xb0 arch/x86/pci/common.c:703
> do_pci_disable_device+0x9f/0x100 drivers/pci/pci.c:2170
> pci_disable_device+0x130/0x270 drivers/pci/pci.c:2206
> pci_device_remove+0xb2/0x1d0 drivers/pci/pci-driver.c:512
> device_remove+0xcb/0x180 drivers/base/dd.c:616
> __device_release_driver drivers/base/dd.c:1349 [inline]
> device_release_driver_internal+0x44e/0x620 drivers/base/dd.c:1372
> unbind_store+0xf8/0x110 drivers/base/bus.c:244
> drv_attr_store+0x74/0xb0 drivers/base/bus.c:125
> sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145
> kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345
> new_sync_write fs/read_write.c:595 [inline]
> vfs_write+0x6ac/0x1050 fs/read_write.c:687
> ksys_write+0x12a/0x250 fs/read_write.c:739
> do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
unbind() releases the driver, which removes the device, but the device
removal does not end up freeing the requested interrupt and
pci_device_remove() ends up correctly freeing the legacy PCI interrupt
descriptor through the above call chain.
The real question is how that comedi parport driver ends up on a PCI
device without actually registering a PCI driver with a proper remove
callback. It seems it just attaches blindly to something which user
space hands in through the ioctl().
Though deciphering this comedi code is beyond my skillset.
I rather go and harden the interrupt core against such bogosities.
Thanks,
tglx
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [syzbot] [kernel?] WARNING: proc registration bug in unregister_irq_proc (2)
2026-07-27 14:22 ` Thomas Gleixner
@ 2026-07-27 14:33 ` Greg Kroah-Hartman
2026-07-27 15:03 ` Ian Abbott
1 sibling, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2026-07-27 14:33 UTC (permalink / raw)
To: Thomas Gleixner
Cc: syzbot, linux-kernel, syzkaller-bugs, Danilo Krummrich,
Rafael J. Wysocki, driver-core, Bjorn Helgaas, linux-pci,
Ian Abbott
On Mon, Jul 27, 2026 at 04:22:58PM +0200, Thomas Gleixner wrote:
> On Sat, Jul 25 2026 at 15:42, syzbot wrote:
>
> > HEAD commit: 3dab139d4795 Merge tag 'rust-fixes-7.2-2' of git://git.ker..
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=156bd88e580000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=145fa60d73086782
> > dashboard link: https://syzkaller.appspot.com/bug?extid=690d666eb12fca6e1e61
> > compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> >
> > Unfortunately, I don't have any reproducer for this issue yet.
> >
> > Downloadable assets:
> > disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-3dab139d.raw.xz
> > vmlinux: https://storage.googleapis.com/syzbot-assets/2b5a401a9dc7/vmlinux-3dab139d.xz
> > kernel image: https://storage.googleapis.com/syzbot-assets/7ed2d255bd44/bzImage-3dab139d.xz
> >
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+690d666eb12fca6e1e61@syzkaller.appspotmail.com
>
> > ------------[ cut here ]------------
> > remove_proc_entry: removing non-empty directory 'irq/20', leaking at least 'comedi_parport'
> > WARNING: fs/proc/generic.c:747 at remove_proc_entry+0x4e7/0x610 fs/proc/generic.c:747, CPU#1: syz.3.389/7224
>
> So this frees an interupt descriptor, which still has an active
> interrupt request on it.
>
> > Modules linked in:
> > CPU: 1 UID: 0 PID: 7224 Comm: syz.3.389 Tainted: G L syzkaller #0 PREEMPT(full)
> > unregister_irq_proc+0x206/0x2a0 kernel/irq/proc.c:406
> > free_desc+0x89/0x330 kernel/irq/irqdesc.c:482
> > irq_free_descs kernel/irq/irqdesc.c:874 [inline]
> > irq_free_descs+0x84/0xc0 kernel/irq/irqdesc.c:865
> > irq_domain_free_irqs+0x46a/0x5c0 kernel/irq/irqdomain.c:1917
> > mp_unmap_irq+0xf8/0x130 arch/x86/kernel/apic/io_apic.c:1061
> > acpi_unregister_gsi_ioapic+0x40/0x60 arch/x86/kernel/acpi/boot.c:722
> > acpi_unregister_gsi+0x25/0x40 arch/x86/kernel/acpi/boot.c:751
> > acpi_pci_irq_disable+0x275/0x360 drivers/acpi/pci_irq.c:517
> > pcibios_disable_device arch/x86/pci/common.c:706 [inline]
> > pcibios_disable_device+0x89/0xb0 arch/x86/pci/common.c:703
> > do_pci_disable_device+0x9f/0x100 drivers/pci/pci.c:2170
> > pci_disable_device+0x130/0x270 drivers/pci/pci.c:2206
> > pci_device_remove+0xb2/0x1d0 drivers/pci/pci-driver.c:512
> > device_remove+0xcb/0x180 drivers/base/dd.c:616
> > __device_release_driver drivers/base/dd.c:1349 [inline]
> > device_release_driver_internal+0x44e/0x620 drivers/base/dd.c:1372
> > unbind_store+0xf8/0x110 drivers/base/bus.c:244
> > drv_attr_store+0x74/0xb0 drivers/base/bus.c:125
> > sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145
> > kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345
> > new_sync_write fs/read_write.c:595 [inline]
> > vfs_write+0x6ac/0x1050 fs/read_write.c:687
> > ksys_write+0x12a/0x250 fs/read_write.c:739
> > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> > do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
> > entry_SYSCALL_64_after_hwframe+0x77/0x7f
>
> unbind() releases the driver, which removes the device, but the device
> removal does not end up freeing the requested interrupt and
> pci_device_remove() ends up correctly freeing the legacy PCI interrupt
> descriptor through the above call chain.
>
> The real question is how that comedi parport driver ends up on a PCI
> device without actually registering a PCI driver with a proper remove
> callback. It seems it just attaches blindly to something which user
> space hands in through the ioctl().
>
> Though deciphering this comedi code is beyond my skillset.
>
> I rather go and harden the interrupt core against such bogosities.
Sure, but really, anyone doing a manual "unbind" gets to keep the pieces
if the kernel can't handle it. The comedi driver really aren't all that
ready for stuff like this as they are in systems that are fixed to the
shop floor, driving big stone cutters.
So no real rush/need that I can see here.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [syzbot] [kernel?] WARNING: proc registration bug in unregister_irq_proc (2)
2026-07-27 14:22 ` Thomas Gleixner
2026-07-27 14:33 ` Greg Kroah-Hartman
@ 2026-07-27 15:03 ` Ian Abbott
1 sibling, 0 replies; 4+ messages in thread
From: Ian Abbott @ 2026-07-27 15:03 UTC (permalink / raw)
To: Thomas Gleixner, syzbot, linux-kernel, syzkaller-bugs
Cc: Greg Kroah-Hartman, Danilo Krummrich, Rafael J. Wysocki,
driver-core, Bjorn Helgaas, linux-pci
On 2026-07-27 15:22, Thomas Gleixner wrote:
> On Sat, Jul 25 2026 at 15:42, syzbot wrote:
>
>> HEAD commit: 3dab139d4795 Merge tag 'rust-fixes-7.2-2' of git://git.ker..
>> git tree: upstream
>> console output: https://syzkaller.appspot.com/x/log.txt?x=156bd88e580000
>> kernel config: https://syzkaller.appspot.com/x/.config?x=145fa60d73086782
>> dashboard link: https://syzkaller.appspot.com/bug?extid=690d666eb12fca6e1e61
>> compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
>>
>> Unfortunately, I don't have any reproducer for this issue yet.
>>
>> Downloadable assets:
>> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-3dab139d.raw.xz
>> vmlinux: https://storage.googleapis.com/syzbot-assets/2b5a401a9dc7/vmlinux-3dab139d.xz
>> kernel image: https://storage.googleapis.com/syzbot-assets/7ed2d255bd44/bzImage-3dab139d.xz
>>
>> IMPORTANT: if you fix the issue, please add the following tag to the commit:
>> Reported-by: syzbot+690d666eb12fca6e1e61@syzkaller.appspotmail.com
>
>> ------------[ cut here ]------------
>> remove_proc_entry: removing non-empty directory 'irq/20', leaking at least 'comedi_parport'
>> WARNING: fs/proc/generic.c:747 at remove_proc_entry+0x4e7/0x610 fs/proc/generic.c:747, CPU#1: syz.3.389/7224
>
> So this frees an interupt descriptor, which still has an active
> interrupt request on it.
>
>> Modules linked in:
>> CPU: 1 UID: 0 PID: 7224 Comm: syz.3.389 Tainted: G L syzkaller #0 PREEMPT(full)
>> unregister_irq_proc+0x206/0x2a0 kernel/irq/proc.c:406
>> free_desc+0x89/0x330 kernel/irq/irqdesc.c:482
>> irq_free_descs kernel/irq/irqdesc.c:874 [inline]
>> irq_free_descs+0x84/0xc0 kernel/irq/irqdesc.c:865
>> irq_domain_free_irqs+0x46a/0x5c0 kernel/irq/irqdomain.c:1917
>> mp_unmap_irq+0xf8/0x130 arch/x86/kernel/apic/io_apic.c:1061
>> acpi_unregister_gsi_ioapic+0x40/0x60 arch/x86/kernel/acpi/boot.c:722
>> acpi_unregister_gsi+0x25/0x40 arch/x86/kernel/acpi/boot.c:751
>> acpi_pci_irq_disable+0x275/0x360 drivers/acpi/pci_irq.c:517
>> pcibios_disable_device arch/x86/pci/common.c:706 [inline]
>> pcibios_disable_device+0x89/0xb0 arch/x86/pci/common.c:703
>> do_pci_disable_device+0x9f/0x100 drivers/pci/pci.c:2170
>> pci_disable_device+0x130/0x270 drivers/pci/pci.c:2206
>> pci_device_remove+0xb2/0x1d0 drivers/pci/pci-driver.c:512
>> device_remove+0xcb/0x180 drivers/base/dd.c:616
>> __device_release_driver drivers/base/dd.c:1349 [inline]
>> device_release_driver_internal+0x44e/0x620 drivers/base/dd.c:1372
>> unbind_store+0xf8/0x110 drivers/base/bus.c:244
>> drv_attr_store+0x74/0xb0 drivers/base/bus.c:125
>> sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145
>> kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345
>> new_sync_write fs/read_write.c:595 [inline]
>> vfs_write+0x6ac/0x1050 fs/read_write.c:687
>> ksys_write+0x12a/0x250 fs/read_write.c:739
>> do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
>> do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
>> entry_SYSCALL_64_after_hwframe+0x77/0x7f
>
> unbind() releases the driver, which removes the device, but the device
> removal does not end up freeing the requested interrupt and
> pci_device_remove() ends up correctly freeing the legacy PCI interrupt
> descriptor through the above call chain.
>
> The real question is how that comedi parport driver ends up on a PCI
> device without actually registering a PCI driver with a proper remove
> callback. It seems it just attaches blindly to something which user
> space hands in through the ioctl().
Yes, the device's I/O base address and IRQ number are configured by an
ioctl() for this driver. (The process doing that needs CAP_SYS_ADMIN
capability. There is also precedent for this sort of thing in the
TIOCSSERIAL ioctl() command for configuring TTY serial ports since the
early days of the Linux kernel.)
Back in the old days of PCs with ISA buses, you could configure the BIOS
to reserve specified IRQs so that they would not be assigned to PCI
devices, so you could use them for ISA devices.
>
> Though deciphering this comedi code is beyond my skillset.
>
> I rather go and harden the interrupt core against such bogosities.
>
> Thanks,
>
> tglx
>
>
>
--
-=( Ian Abbott <abbotti@mev.co.uk> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-27 15:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-25 22:42 [syzbot] [kernel?] WARNING: proc registration bug in unregister_irq_proc (2) syzbot
2026-07-27 14:22 ` Thomas Gleixner
2026-07-27 14:33 ` Greg Kroah-Hartman
2026-07-27 15:03 ` Ian Abbott
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.