summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Dooks <ben.dooks@codethink.co.uk>2013-02-09 23:07:10 +0000
committerBen Dooks <ben.dooks@codethink.co.uk>2013-02-09 23:07:10 +0000
commit53f8c64f4cbdff29f2d54569e7b4f431209a8725 (patch)
tree71272266a2772e7ba4786d850a58a7f96a83883b
parent6525a56f3b3f5e5b148c719624a59447fa0ecc2e (diff)
downloadlinux-baserock/arm/bjdooks/be8_v2.tar.gz
ARM: mm: mm->context.id fix for big-endianbaserock/arm/bjdooks/be8_v2
Since the new ASID code introduced in b5466f8728527a05a493cc4abe9e6f034a1bbaab uses 64bit operations, when running in BE mode we see the values in mm->context.id swapped around as the lowest word is being stored in mm->context.id + 4, instead of + 0. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
-rw-r--r--arch/arm/mm/proc-macros.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S
index eb6aa73bc8b7..5a6a347fd291 100644
--- a/arch/arm/mm/proc-macros.S
+++ b/arch/arm/mm/proc-macros.S
@@ -40,7 +40,11 @@
* mmid - get context id from mm pointer (mm->context.id)
*/
.macro mmid, rd, rn
+#ifdef __ARMEB__
+ ldr \rd, [\rn, #MM_CONTEXT_ID + 4 ]
+#else
ldr \rd, [\rn, #MM_CONTEXT_ID]
+#endif
.endm
/*