byteorder: use generic C version for value byteswapping
authorHarvey Harrison <harvey.harrison@gmail.com>
Sun, 19 Oct 2008 03:28:36 +0000 (20:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Oct 2008 15:52:40 +0000 (08:52 -0700)
This makes the new implementation of the byteorder helpers match the old
in how it degraded when an arch-defined version was not available:

1) swab()
- look for arch defined
- if not, use generic c version

2) swabp()
- look for arch-defined
- if not, deref pointer and use swab()

3) swabs()
- look for arch defined
- if not, use swabp

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/swab.h

index 270d5c208a899aaeee19148a8a39109d59e384a8..bbed279f3b32b53ff90dde829a8380fa0f8f768f 100644 (file)
@@ -47,8 +47,6 @@ static inline __attribute_const__ __u16 ___swab16(__u16 val)
 {
 #ifdef __arch_swab16
        return __arch_swab16(val);
-#elif defined(__arch_swab16p)
-       return __arch_swab16p(&val);
 #else
        return __const_swab16(val);
 #endif
@@ -58,8 +56,6 @@ static inline __attribute_const__ __u32 ___swab32(__u32 val)
 {
 #ifdef __arch_swab32
        return __arch_swab32(val);
-#elif defined(__arch_swab32p)
-       return __arch_swab32p(&val);
 #else
        return __const_swab32(val);
 #endif
@@ -69,8 +65,6 @@ static inline __attribute_const__ __u64 ___swab64(__u64 val)
 {
 #ifdef __arch_swab64
        return __arch_swab64(val);
-#elif defined(__arch_swab64p)
-       return __arch_swab64p(&val);
 #elif defined(__SWAB_64_THRU_32__)
        __u32 h = val >> 32;
        __u32 l = val & ((1ULL << 32) - 1);
@@ -84,8 +78,6 @@ static inline __attribute_const__ __u32 ___swahw32(__u32 val)
 {
 #ifdef __arch_swahw32
        return __arch_swahw32(val);
-#elif defined(__arch_swahw32p)
-       return __arch_swahw32p(&val);
 #else
        return __const_swahw32(val);
 #endif
@@ -95,8 +87,6 @@ static inline __attribute_const__ __u32 ___swahb32(__u32 val)
 {
 #ifdef __arch_swahb32
        return __arch_swahb32(val);
-#elif defined(__arch_swahb32p)
-       return __arch_swahb32p(&val);
 #else
        return __const_swahb32(val);
 #endif