Browse Source

arm64: Fix the endianness of arch_spinlock_t

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 <catalin.marinas@arm.com>
Reported-by: Matthew Leach <matthew.leach@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Catalin Marinas 11 years ago
parent
commit
4a12cae7ef
1 changed files with 5 additions and 0 deletions
  1. 5 0
      arch/arm64/include/asm/spinlock_types.h

+ 5 - 0
arch/arm64/include/asm/spinlock_types.h

@@ -23,8 +23,13 @@
 #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 }