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;
 }
 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to