On Thu, 2002-10-10 at 20:09, Andi Kleen wrote:
>
> Last mail had the wrong patch. Here is the correct one that should
> actually compile
>
>
> --- linux/include/linux/byteorder/swab.h-o 2001-07-26 22:45:47.000000000
> +0200
> +++ linux/include/linux/byteorder/swab.h 2002-10-11 03:03:32.000000000
> +0200
> @@ -167,11 +167,11 @@
> }
> static __inline__ __u64 __swab64p(__u64 *x)
> {
> - return __arch__swab64p(x);
> + *x = __fswab64(*x);
> }
> static __inline__ void __swab64s(__u64 *addr)
> {
> - __arch__swab64s(addr);
> + *addr = __fswab64(*addr);
> }
> #endif /* __BYTEORDER_HAS_U64__ */
>
Are you sure that would help? We only call into __swab64() from XFS
and, provided builtin_constant_p is doing its stuff this
should turn into __fswab64 which will execute this code:
__u32 h = x >> 32;
__u32 l = x & ((1ULL<<32)-1);
return (((__u64)__swab32(l)) << 32) | ((__u64)(__swab32(h)));
At least I hope so...
Also that change to the pointer version looks wrong, you have
a function which is supposed to return a value and no longer
does.
Steve
|