Ok. I´ve found it. The MSI interrupt type uses its end() handler to
acknowledge the interrupt using ack_APIC_irq() (drivers/pci/msi.c).
Xenomai uses the ack() handler to expedite the acknowledgement of an
IRQ. In case of MSI, ack() is a NOP.
The main problem is that Xenomai redefines ack_APIC_irq() calls (they
become NOPs, as defined in apic.h). Maybe the ISRs used so far never
issued ack_APIC_irq() themselves, and used always the IO-APIC (which
contains the correct __ack_APIC_irq() call) ?
I feel a bit awkward about changing msi.c .
Any opinions about how to change Xenomai / Linux ?
Jeroen.
- Re: [Xenomai-core] Handling PCI MSI interrupts Jeroen Van den Keybus
- Re: [Xenomai-core] Handling PCI MSI interrupts Philippe Gerum
- Re: [Xenomai-core] Handling PCI MSI interru... Jeroen Van den Keybus
- Re: [Xenomai-core] Handling PCI MSI int... Philippe Gerum
- Re: [Xenomai-core] Handling PCI MSI int... Jeroen Van den Keybus
- RE: [Xenomai-core] Handling PCI MSI interru... Russell Johnson
- Re: [Xenomai-core] Handling PCI MSI int... Philippe Gerum
- RE: [Xenomai-core] Handling PCI MSI... Russell Johnson
- Re: [Xenomai-core] Handling PC... Jeroen Van den Keybus
- Re: [Xenomai-core] Handlin... Philippe Gerum
- RE: [Xenomai-core] Han... Russell Johnson