[PATCH] linux: arm: vdso: nullpatch vdso_clock_gettime64 for non-virtual timers
Robin Murphy
robin.murphy at arm.com
Thu Jul 16 14:46:17 EDT 2020
Hi Alex,
On 2020-07-16 16:07, Alex Bee wrote:
> Along with commit commit 74d06efb9c2f ("ARM: 8932/1: Add clock_gettime64
> entry point") clock_gettime64 was added for ARM platform to solve the
> y2k38 problem on 32-bit platforms. glibc from version 2.31 onwards
> started using this vdso-call on ARM platforms.
> However it was (probably) forgotten to "nullpatch" this call, when no
> reliable timer source is available, for example when
> "arm,cpu-registers-not-fw-configured" is defined in devicetree for
> "arm,armv7-timer".
> This results in erratic time jumps whenever "gettimeofday" gets called,
> since the (non-working) vdso-call will be used instead of a syscall.
>
> This patch adds clock_gettime64 to get nullpatched as well. It has been
> verified to work and solve this issue on Rockchip RK322x, RK3288 and
> RPi4 (32-bit kernel build) platforms.
FYI, a version of this patch was already submitted, and is just waiting
for Russell to apply it:
https://www.armlinux.org.uk/developer/patches/viewpatch.php?id=8987/1
Robin.
> Signed-off-by: Alex Bee <knaerzche at gmail.com>
> ---
> arch/arm/kernel/vdso.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/kernel/vdso.c b/arch/arm/kernel/vdso.c
> index 6bfdca4769a7..fddd08a6e063 100644
> --- a/arch/arm/kernel/vdso.c
> +++ b/arch/arm/kernel/vdso.c
> @@ -184,6 +184,7 @@ static void __init patch_vdso(void *ehdr)
> if (!cntvct_ok) {
> vdso_nullpatch_one(&einfo, "__vdso_gettimeofday");
> vdso_nullpatch_one(&einfo, "__vdso_clock_gettime");
> + vdso_nullpatch_one(&einfo, "__vdso_clock_gettime64");
> }
> }
>
>
More information about the linux-arm-kernel
mailing list