aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorMatthew Leach <matthew.leach@arm.com>2013-09-25 16:33:13 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2013-09-25 16:42:23 +0100
commitfc18047c732f6becba92618a397555927687efd3 (patch)
treeecb437b28ddd3b3e4c90aecc9364e6d2f92a0d5a /arch/arm64
parentarm64: avoid multiple evaluation of ptr in get_user/put_user() (diff)
downloadlinux-dev-fc18047c732f6becba92618a397555927687efd3.tar.xz
linux-dev-fc18047c732f6becba92618a397555927687efd3.zip
arm64: use correct register width when retrieving ASID
The ASID is represented as an unsigned int in mm_context_t and we currently use the mmid assembler macro to access this element of the struct. This should be accessed with a register of 32-bit width. If the incorrect register width is used the ASID will be returned in bits[32:63] of the register when running under big-endian. Fix a use of the mmid macro in tlb.S to use a 32-bit access. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Matthew Leach <matthew.leach@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/mm/tlb.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/mm/tlb.S b/arch/arm64/mm/tlb.S
index 8ae80a18e8ec..19da91e0cd27 100644
--- a/arch/arm64/mm/tlb.S
+++ b/arch/arm64/mm/tlb.S
@@ -35,7 +35,7 @@
*/
ENTRY(__cpu_flush_user_tlb_range)
vma_vm_mm x3, x2 // get vma->vm_mm
- mmid x3, x3 // get vm_mm->context.id
+ mmid w3, x3 // get vm_mm->context.id
dsb sy
lsr x0, x0, #12 // align address
lsr x1, x1, #12