]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
powerpc: Fix vDSO clock_getres()
authorVincenzo Frascino <vincenzo.frascino@arm.com>
Mon, 2 Dec 2019 07:57:29 +0000 (07:57 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 11 Feb 2020 20:03:55 +0000 (20:03 +0000)
commit9b3c5a65b7eaf8b6da97e4ddf74fa44be1064248
tree8a0f20d7cdeacc0c22685da947728c48eac6b388
parent2c2d6d5f193b96780a287695634a283331426e02
powerpc: Fix vDSO clock_getres()

commit 552263456215ada7ee8700ce022d12b0cffe4802 upstream.

clock_getres in the vDSO library has to preserve the same behaviour
of posix_get_hrtimer_res().

In particular, posix_get_hrtimer_res() does:
    sec = 0;
    ns = hrtimer_resolution;
and hrtimer_resolution depends on the enablement of the high
resolution timers that can happen either at compile or at run time.

Fix the powerpc vdso implementation of clock_getres keeping a copy of
hrtimer_resolution in vdso data and using that directly.

Fixes: a7f290dad32e ("[PATCH] powerpc: Merge vdso's and add vdso support to 32 bits kernel")
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Reviewed-by: Christophe Leroy <christophe.leroy@c-s.fr>
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
[chleroy: changed CLOCK_REALTIME_RES to CLOCK_HRTIMER_RES]
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/a55eca3a5e85233838c2349783bcb5164dae1d09.1575273217.git.christophe.leroy@c-s.fr
[bwh: Backported to 3.16:
 - In asm-offsets.c, use DEFINE() instead of OFFSET()
 - Adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/powerpc/include/asm/vdso_datapage.h
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/time.c
arch/powerpc/kernel/vdso32/gettimeofday.S
arch/powerpc/kernel/vdso64/gettimeofday.S