mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-20 08:38:24 +08:00
Fix up 64-bit byte swaps for most 32-bit architectures
The __SWAB_64_THRU_32__ case of a 64-bit byte swap was depending on the no-longer-existant ___swab32() method (three underscores). We got rid of some of the worst indirection and complexity, and now it should just use the 32-bit swab function that was defined right above it. Reported-and-tested-by: Nicolas Pitre <nico@cam.org> Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
637b180c23
commit
ede6f5aea0
@ -68,7 +68,7 @@ static inline __attribute_const__ __u64 __fswab64(__u64 val)
|
|||||||
#elif defined(__SWAB_64_THRU_32__)
|
#elif defined(__SWAB_64_THRU_32__)
|
||||||
__u32 h = val >> 32;
|
__u32 h = val >> 32;
|
||||||
__u32 l = val & ((1ULL << 32) - 1);
|
__u32 l = val & ((1ULL << 32) - 1);
|
||||||
return (((__u64)___swab32(l)) << 32) | ((__u64)(___swab32(h)));
|
return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h)));
|
||||||
#else
|
#else
|
||||||
return ___constant_swab64(val);
|
return ___constant_swab64(val);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user