From: "H. Peter Anvin" The changes are demoting the functions that take a pointer for input only to __attribute_pure__ and to mark the pointer as const. the gcc manual states: Note that a function that has pointer arguments and examines the data pointed to must _not_ be declared `const'. Likewise, a function that calls a non-`const' function usually must not be `const'. It does not make sense for a `const' function to return `void'. 25-akpm/include/asm-s390/byteorder.h | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN include/asm-s390/byteorder.h~s390-const-fixes include/asm-s390/byteorder.h --- 25/include/asm-s390/byteorder.h~s390-const-fixes Mon Dec 22 12:23:19 2003 +++ 25-akpm/include/asm-s390/byteorder.h Mon Dec 22 12:23:19 2003 @@ -15,7 +15,7 @@ #ifdef __GNUC__ #ifdef __s390x__ -static __inline__ __attribute_const__ __u64 ___arch__swab64p(__u64 *x) +static __inline__ __attribute_pure__ __u64 ___arch__swab64p(__const__ __u64 *x) { __u64 result; @@ -41,7 +41,7 @@ static __inline__ void ___arch__swab64s( } #endif /* __s390x__ */ -static __inline__ __attribute_const__ __u32 ___arch__swab32p(__u32 *x) +static __inline__ __attribute_pure__ __u32 ___arch__swab32p(__const__ __u32 *x) { __u32 result; @@ -78,7 +78,7 @@ static __inline__ void ___arch__swab32s( *x = ___arch__swab32p(x); } -static __inline__ __attribute_const__ __u16 ___arch__swab16p(__u16 *x) +static __inline__ __attribute_pure__ __u16 ___arch__swab16p(__const__ __u16 *x) { __u16 result; _