Hi Giammarco, Giammarco Zacheo wrote: > Ok, I hope this is what you asked for... > > I added printk in mask_ack_irq. Look at mask_ack_irq--> in the text > below, those are the addresses of the function pointers. > the printk related to mask_ack is printed once at the first pass in > the function, otherwise the kernel would be choked by the output.
Yep, this pointed to the right spot. I still don't get why we didn't stumble over this earlier (obviously, most x86_64 boxes take a different code path here), but it is at least clear now what went wrong: I-pipe ran into one of the remaining non-genirq code paths on x86_64. More precisely, the IRQ chip of timer interrupt was changed from 8259 to APIC without going through the generic API so that I-pipe was still using the old ack handler, stepping later on the missing mask and mack_ack handler. This patch now updates irq_chip.ipipe_ack when it changes for IRQ0. This is a temporary fix, I guess kernel people will refactor io_apic_*.c into a shared variant soon, overcoming this "minor" variation between i386 and x86_64... Please let us know if this helps! Jan
--- arch/x86_64/kernel/io_apic.c | 5 +++++ 1 file changed, 5 insertions(+) Index: linux-2.6.23.1-xeno_64/arch/x86_64/kernel/io_apic.c =================================================================== --- linux-2.6.23.1-xeno_64.orig/arch/x86_64/kernel/io_apic.c +++ linux-2.6.23.1-xeno_64/arch/x86_64/kernel/io_apic.c @@ -1659,6 +1659,8 @@ static inline void unlock_ExtINT_logic(v spin_unlock_irqrestore(&ioapic_lock, flags); } +void __ipipe_ack_edge_irq(unsigned irq, struct irq_desc *desc); + /* * This code may look a bit paranoid, but it's supposed to cooperate with * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ @@ -1752,6 +1754,9 @@ static inline void check_timer(void) disable_8259A_irq(0); irq_desc[0].chip = &lapic_irq_type; +#ifdef CONFIG_IPIPE + irq_desc[0].ipipe_ack = &__ipipe_ack_edge_irq; +#endif apic_write(APIC_LVT0, APIC_DM_FIXED | cfg->vector); /* Fixed mode */ enable_8259A_irq(0);
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
