While digging into a latency issue with multiple IRQs pending (patch will likely follow soon), I noticed that the replay order on x86 is the inverse of the hardware order. Instead of iterating from lowest IRQ number to highest, ipipe currently starts with the highest one. The attached patch fixes this.
Jan
Index: linux-2.6.17.13/include/asm-i386/ipipe.h
===================================================================
--- linux-2.6.17.13.orig/include/asm-i386/ipipe.h
+++ linux-2.6.17.13/include/asm-i386/ipipe.h
@@ -242,8 +242,7 @@ extern int __ipipe_tick_irq;
static inline unsigned long __ipipe_ffnz(unsigned long ul)
{
- __asm__("bsrl %1, %0":"=r"(ul)
- : "r"(ul));
+ __asm__("bsfl %1, %0":"=r"(ul):"r"(ul));
return ul;
}
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
