Index: arch/amd64/include/byteorder.h
===================================================================
--- arch/amd64/include/byteorder.h	(revision 61a9bbe35ad836ebc0bd27300f9a470e45539098)
+++ arch/amd64/include/byteorder.h	(revision f3ade6cfd5835d3036aaac722aa76c03a3f39edd)
@@ -31,6 +31,6 @@
 
 /* AMD64 is little-endian */
-#define native_le2host(n)		(n)
-#define u64_le2host(n)		(n)
+#define __native_le2host(n)		(n)
+#define __u64_le2host(n)		(n)
 
 #endif
Index: arch/ia32/include/byteorder.h
===================================================================
--- arch/ia32/include/byteorder.h	(revision 61a9bbe35ad836ebc0bd27300f9a470e45539098)
+++ arch/ia32/include/byteorder.h	(revision f3ade6cfd5835d3036aaac722aa76c03a3f39edd)
@@ -31,6 +31,6 @@
 
 /* IA-32 is little-endian */
-#define native_le2host(n)		(n)
-#define u64_le2host(n)		(n)
+#define __native_le2host(n)		(n)
+#define __u64_le2host(n)		(n)
 
 #endif
Index: arch/ia64/include/byteorder.h
===================================================================
--- arch/ia64/include/byteorder.h	(revision 61a9bbe35ad836ebc0bd27300f9a470e45539098)
+++ arch/ia64/include/byteorder.h	(revision f3ade6cfd5835d3036aaac722aa76c03a3f39edd)
@@ -31,6 +31,6 @@
 
 /* IA-64 is little-endian */
-#define native_le2host(n)		(n)
-#define u64_le2host(n)		(n)
+#define __native_le2host(n)		(n)
+#define __u64_le2host(n)		(n)
 
 #endif
Index: arch/mips/include/byteorder.h
===================================================================
--- arch/mips/include/byteorder.h	(revision 61a9bbe35ad836ebc0bd27300f9a470e45539098)
+++ arch/mips/include/byteorder.h	(revision f3ade6cfd5835d3036aaac722aa76c03a3f39edd)
@@ -30,27 +30,21 @@
 #define __mips_BYTEORDER_H__
 
+#include <arch/types.h>
+#include <byteorder.h>
+
 #ifdef BIG_ENDIAN
-static inline __u64 u64_le2host(__u64 n)
+static inline __u64 __u64_le2host(__u64 n)
 {
-	return ((n & 0xff) << 56) |
-		((n & 0xff00) << 40) |
-		((n & 0xff0000) << 24) |
-		((n & 0xff000000LL) << 8) |
-		((n & 0xff00000000LL) >>8) |
-		((n & 0xff0000000000LL) >> 24) |
-		((n & 0xff000000000000LL) >> 40) |
-		((n & 0xff00000000000000LL) >> 56);
+	return __u64_byteorder_swap(n);
 }
 
-static inline __native native_le2host(__native n)
+static inline __native __native_le2host(__native n)
 {
-	return ((n & 0xff) << 24) |
-		((n & 0xff00) << 8) |
-		((n & 0xff0000) >> 8) |
-		((n & 0xff000000) >> 24);
+	return __u32_byteroder_swap(n);
 }
+
 #else
-#  define native_le2host(n)		(n)
-#  define u64_le2host(n)		(n)
+#  define __native_le2host(n)		(n)
+#  define __u64_le2host(n)		(n)
 #endif
 
Index: arch/ppc/include/byteorder.h
===================================================================
--- arch/ppc/include/byteorder.h	(revision 61a9bbe35ad836ebc0bd27300f9a470e45539098)
+++ arch/ppc/include/byteorder.h	(revision f3ade6cfd5835d3036aaac722aa76c03a3f39edd)
@@ -31,4 +31,11 @@
 
 #include <arch/types.h>
+#include <byteorder.h>
+
+static inline __u64 __u64_le2host(__u64 n)
+{
+	return __u64_byteorder_swap(n);
+}
+
 
 /** Convert little-endian __native to host __native
@@ -41,16 +48,5 @@
  *
  */
-static inline __u64 u64_le2host(__u64 n)
-{
-	return ((n & 0xff) << 56) |
-		((n & 0xff00) << 40) |
-		((n & 0xff0000) << 24) |
-		((n & 0xff000000LL) << 8) |
-		((n & 0xff00000000LL) >>8) |
-		((n & 0xff0000000000LL) >> 24) |
-		((n & 0xff000000000000LL) >> 40) |
-		((n & 0xff00000000000000LL) >> 56);
-}
-static inline __native native_le2host(__native n)
+static inline __native __native_le2host(__native n)
 {
 	__address v;
