arm64: Fix the endianness of arch_spinlock_t
authorCatalin Marinas <[email protected]>
Fri, 25 Oct 2013 14:48:33 +0000 (15:48 +0100)
committerCatalin Marinas <[email protected]>
Fri, 25 Oct 2013 15:10:22 +0000 (16:10 +0100)
The owner and next members of the arch_spinlock_t structure need to be
swapped when compiling for big endian.

Signed-off-by: Catalin Marinas <[email protected]>
Reported-by: Matthew Leach <[email protected]>
Acked-by: Will Deacon <[email protected]>
arch/arm64/include/asm/spinlock_types.h

index 87692750ed94f2fd8f18f49388348a0aeedb64ba..b8d383665f56b04a2d44d85664660a5d46b6e40e 100644 (file)
 #define TICKET_SHIFT   16
 
 typedef struct {
+#ifdef __AARCH64EB__
+       u16 next;
+       u16 owner;
+#else
        u16 owner;
        u16 next;
+#endif
 } __aligned(4) arch_spinlock_t;
 
 #define __ARCH_SPIN_LOCK_UNLOCKED      { 0 , 0 }