PCIe IRQ problem
Hi,
I am writing a device driver for a new PCIe device. The IRQ associated with this device is #11 as can be seen in /proc/interrupts:
"11: 0 0 0 0 IR-IO-APIC-edge vfb"
However whenever the new device generates an interrupt it looks as if IRQ #16 is raised instead as can be seen by dmesg:
[ 7963.019683] irq 16: nobody cared (try booting with the "irqpoll" option)
[ 7963.019690] Pid: 0, comm: swapper/1 Tainted: GF O 3.8.0-29-generic #42-Ubuntu
[ 7963.019692] Call Trace:
[ 7963.019694] <IRQ> [<ffffffff810ece5d>] __report_bad_irq+0x3d/0xe0
[ 7963.019707] [<ffffffff810ed322>] note_interrupt+0x1c2/0x210
[ 7963.019712] [<ffffffff81574b98>] ? cpuidle_wrap_enter+0x58/0xa0
[ 7963.019716] [<ffffffff81574150>] ? centrino_target+0x370/0x370
[ 7963.019720] [<ffffffff810eaa97>] handle_irq_event_percpu+0xa7/0x1f0
[ 7963.019724] [<ffffffff81574150>] ? centrino_target+0x370/0x370
[ 7963.019727] [<ffffffff810eac2e>] handle_irq_event+0x4e/0x80
[ 7963.019731] [<ffffffff810ede6a>] handle_fasteoi_irq+0x5a/0x100
[ 7963.019737] [<ffffffff810164ce>] handle_irq+0x1e/0x30
[ 7963.019741] [<ffffffff816d732a>] do_IRQ+0x5a/0xe0
[ 7963.019745] [<ffffffff816cd32d>] common_interrupt+0x6d/0x6d
[ 7963.019747] <EOI> [<ffffffff81574b98>] ? cpuidle_wrap_enter+0x58/0xa0
[ 7963.019754] [<ffffffff81574bf0>] cpuidle_enter_tk+0x10/0x20
[ 7963.019757] [<ffffffff815747e5>] cpuidle_idle_call+0xa5/0x260
[ 7963.019761] [<ffffffff8101d5af>] cpu_idle+0xaf/0x120
[ 7963.019765] [<ffffffff816b6a83>] start_secondary+0x1e0/0x1e5
[ 7963.019767] handlers:
[ 7963.019771] [<ffffffff814fa0b0>] usb_hcd_irq
[ 7963.019773] Disabling IRQ #16
Is this a driver problem (me setting up the interrupt handling incorrectly), or a device problem (I should blame the HW engineer for raising the wrong IRQ)?
Thanks,
David
|