]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-mips/delay.h
slab numa fallback logic: Do not pass unfiltered flags to page allocator
[linux-2.6-omap-h63xx.git] / include / asm-mips / delay.h
index de5105d05f1ee3874a8d8e21246b3c727d09f385..b0bccd2c4ed503bb4f10ae8bc4aac057522e3ba0 100644 (file)
@@ -28,7 +28,7 @@ static inline void __delay(unsigned long loops)
                "       .set    reorder                                 \n"
                : "=r" (loops)
                : "0" (loops));
-       else if (sizeof(long) == 8)
+       else if (sizeof(long) == 8 && !DADDI_WAR)
                __asm__ __volatile__ (
                "       .set    noreorder                               \n"
                "       .align  3                                       \n"
@@ -37,6 +37,15 @@ static inline void __delay(unsigned long loops)
                "       .set    reorder                                 \n"
                : "=r" (loops)
                : "0" (loops));
+       else if (sizeof(long) == 8 && DADDI_WAR)
+               __asm__ __volatile__ (
+               "       .set    noreorder                               \n"
+               "       .align  3                                       \n"
+               "1:     bnez    %0, 1b                                  \n"
+               "       dsubu   %0, %2                                  \n"
+               "       .set    reorder                                 \n"
+               : "=r" (loops)
+               : "0" (loops), "r" (1));
 }