diff options
author | Will Deacon <will.deacon@arm.com> | 2012-11-30 13:34:25 -0500 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2012-12-05 06:20:03 -0500 |
commit | 251db45336c8fb5fd0c36f71aabc6950e427110f (patch) | |
tree | da96296e521bb811ff79d3eab047ef6f47858f3e /arch/arm64 | |
parent | f2bd5d240635b15b5e32cd3c36ed0f4ad31e8442 (diff) |
arm64: vdso: fix clocksource mask when extracting bottom 56 bits
The generic timer clocksource has 56 bits of precision and as such must
be masked appropriately after we have read it. The current mask
generated by a movn instruction is off by 4 bits, so we accidentally
include the top 4 bits in the final value.
This patch fixes the broken mask.
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r-- | arch/arm64/kernel/vdso/gettimeofday.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kernel/vdso/gettimeofday.S b/arch/arm64/kernel/vdso/gettimeofday.S index dcb8c203a3b2..05c1229a2874 100644 --- a/arch/arm64/kernel/vdso/gettimeofday.S +++ b/arch/arm64/kernel/vdso/gettimeofday.S | |||
@@ -223,7 +223,7 @@ ENTRY(__do_get_tspec) | |||
223 | /* Calculate cycle delta and convert to ns. */ | 223 | /* Calculate cycle delta and convert to ns. */ |
224 | sub x10, x9, x10 | 224 | sub x10, x9, x10 |
225 | /* We can only guarantee 56 bits of precision. */ | 225 | /* We can only guarantee 56 bits of precision. */ |
226 | movn x9, #0xff0, lsl #48 | 226 | movn x9, #0xff00, lsl #48 |
227 | and x10, x9, x10 | 227 | and x10, x9, x10 |
228 | mul x10, x10, x14 | 228 | mul x10, x10, x14 |
229 | lsr x10, x10, x15 | 229 | lsr x10, x10, x15 |