> The second one is correct. So one definite failing piece of code was in
> the cpus_or() path, i'm not so sure about the others. I have attached the
> test case. Bill says his gcc 3.3 works...
Uninlining bitmap_or fixes the test case with -O2 Could you try the
following patch with your kernels?
--- linux-2.5.74-cpumask/include/linux/bitmap.h.orig 2003-07-04 03:48:22.746229592 -0400
+++ linux-2.5.74-cpumask/include/linux/bitmap.h 2003-07-04 03:49:39.606545048 -0400
@@ -100,7 +100,7 @@
bitmap_copy(dst, __shl_tmp, bits);
}
-static inline void bitmap_and(volatile unsigned long *dst, const volatile unsigned long *bitmap1, const volatile unsigned long *bitmap2, int bits)
+static void bitmap_and(volatile unsigned long *dst, const volatile unsigned long *bitmap1, const volatile unsigned long *bitmap2, int bits)
{
int k;
@@ -108,7 +108,7 @@
dst[k] = bitmap1[k] & bitmap2[k];
}
-static inline void bitmap_or(volatile unsigned long *dst, const volatile unsigned long *bitmap1, const volatile unsigned long *bitmap2, int bits)
+static void bitmap_or(volatile unsigned long *dst, const volatile unsigned long *bitmap1, const volatile unsigned long *bitmap2, int bits)
{
int k;
-- function.linuxpower.ca - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/