lkml.org 
[lkml]   [2004]   [Jan]   [16]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: seperator error in __mask_snprintf_len
FromAndi Kleen <>
DateFri, 16 Jan 2004 09:25:30 +0100
Andrew Morton <akpm@osdl.org> writes:

> +void bitmap_complement(unsigned long *bitmap, int bits)
> +{> +	int k;> +> +	for (k = 0; k < BITS_TO_LONGS(bits); ++k)
> +		bitmap[k] = ~bitmap[k];
> +}
> +EXPORT_SYMBOL(bitmap_complement);

I actually had to change that one in my NUMA API patchkit (which uses
bitmap functions for its node maps), because gcc 3.2 miscompiled the
loop.

Please add something like that (looks silly, but makes a big 
difference):
 static inline void bitmap_complement(unsigned long *bitmap, int bits)
 {
        int k;
+       int max = BITS_TO_LONGS(bits);
-       for (k = 0; k < BITS_TO_LONGS(bits); ++k)
+       for (k = 0; k < max; ++k)
                bitmap[k] = ~bitmap[k];

-Andi
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:00    [from the cache]
©2003-2008