summaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorNathan Lynch <nathan_lynch@mentor.com>2015-02-25 00:21:07 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2015-02-26 19:13:51 +0100
commite1b6b6ce55a0a25c8aa8af019095253b2133a41a (patch)
tree6262629f56ef359531228b0360cea1b841fca681 /arch/arm64
parentarm64: guard asm/assembler.h against multiple inclusions (diff)
downloadlinux-e1b6b6ce55a0a25c8aa8af019095253b2133a41a.tar.xz
linux-e1b6b6ce55a0a25c8aa8af019095253b2133a41a.zip
arm64: vdso: minor ABI fix for clock_getres
The vdso implementation of clock_getres currently returns 0 (success) whenever a null timespec is provided by the caller, regardless of the clock id supplied. This behavior is incorrect. It should fall back to syscall when an unrecognized clock id is passed, even when the timespec argument is null. This ensures that clock_getres always returns an error for invalid clock ids. Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com> Acked-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.S3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/arm64/kernel/vdso/gettimeofday.S b/arch/arm64/kernel/vdso/gettimeofday.S
index fe652ffd34c2..efa79e8d4196 100644
--- a/arch/arm64/kernel/vdso/gettimeofday.S
+++ b/arch/arm64/kernel/vdso/gettimeofday.S
@@ -174,8 +174,6 @@ ENDPROC(__kernel_clock_gettime)
/* int __kernel_clock_getres(clockid_t clock_id, struct timespec *res); */
ENTRY(__kernel_clock_getres)
.cfi_startproc
- cbz w1, 3f
-
cmp w0, #CLOCK_REALTIME
ccmp w0, #CLOCK_MONOTONIC, #0x4, ne
b.ne 1f
@@ -188,6 +186,7 @@ ENTRY(__kernel_clock_getres)
b.ne 4f
ldr x2, 6f
2:
+ cbz w1, 3f
stp xzr, x2, [x1]
3: /* res == NULL. */