@@ -9,6 +9,7 @@ static inline __u16 __arch_swab16p(const __u16 *addr)
{
__u16 ret;
+ __asm__ __volatile__ ("": : :"memory");
__asm__ __volatile__ ("lduha [%1] %2, %0"
: "=r" (ret)
: "r" (addr), "i" (ASI_PL));
@@ -20,6 +21,7 @@ static inline __u32 __arch_swab32p(const __u32 *addr)
{
__u32 ret;
+ __asm__ __volatile__ ("": : :"memory");
__asm__ __volatile__ ("lduwa [%1] %2, %0"
: "=r" (ret)
: "r" (addr), "i" (ASI_PL));
@@ -31,6 +33,7 @@ static inline __u64 __arch_swab64p(const __u64 *addr)
{
__u64 ret;
+ __asm__ __volatile__ ("": : :"memory");
__asm__ __volatile__ ("ldxa [%1] %2, %0"
: "=r" (ret)
: "r" (addr), "i" (ASI_PL));