[PATCH v8 8/8] powerpc/vdso: Provide __kernel_clock_gettime64() on vdso32

Christophe Leroy christophe.leroy at c-s.fr
Wed Apr 29 01:03:32 AEST 2020


Hi,


On 04/28/2020 01:16 PM, Christophe Leroy wrote:
> Provides __kernel_clock_gettime64() on vdso32. This is the
> 64 bits version of __kernel_clock_gettime() which is
> y2038 compliant.
>
> Signed-off-by: Christophe Leroy <christophe.leroy at c-s.fr>

Why does snowpatch still report upstream failure ? This is fixed in 
latest powerpc/merge which is

commit d9e4eabb775e1ba56d83bd4047de2413a21f87ce
Merge: 54dc28ff5e0b 51184ae37e05
Author: Michael Ellerman <mpe at ellerman.id.au>
Date:   Tue Apr 28 09:01:47 2020 +1000

     Automatic merge of branches 'master', 'next' and 'fixes' into merge

Looks like snowpatch is still using

commit 54dc28ff5e0b3585224d49a31b53e030342ca5c3
Merge: 5d23fec1ac1d b2768df24ec4
Author: Michael Ellerman <mpe at ellerman.id.au>
Date:   Sun Apr 26 09:44:18 2020 +1000

     Automatic merge of branches 'master', 'next' and 'fixes' into merge

Why ?

Christophe



> ---
>   arch/powerpc/kernel/vdso32/gettimeofday.S  | 9 +++++++++
>   arch/powerpc/kernel/vdso32/vdso32.lds.S    | 1 +
>   arch/powerpc/kernel/vdso32/vgettimeofday.c | 6 ++++++
>   3 files changed, 16 insertions(+)
>
> diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S
> index fd7b01c51281..a6e29f880e0e 100644
> --- a/arch/powerpc/kernel/vdso32/gettimeofday.S
> +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
> @@ -35,6 +35,15 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
>   	cvdso_call __c_kernel_clock_gettime
>   V_FUNCTION_END(__kernel_clock_gettime)
>   
> +/*
> + * Exact prototype of clock_gettime64()
> + *
> + * int __kernel_clock_gettime64(clockid_t clock_id, struct __timespec64 *ts);
> + *
> + */
> +V_FUNCTION_BEGIN(__kernel_clock_gettime64)
> +	cvdso_call __c_kernel_clock_gettime64
> +V_FUNCTION_END(__kernel_clock_gettime64)
>   
>   /*
>    * Exact prototype of clock_getres()
> diff --git a/arch/powerpc/kernel/vdso32/vdso32.lds.S b/arch/powerpc/kernel/vdso32/vdso32.lds.S
> index 6cf729612268..05b462143238 100644
> --- a/arch/powerpc/kernel/vdso32/vdso32.lds.S
> +++ b/arch/powerpc/kernel/vdso32/vdso32.lds.S
> @@ -144,6 +144,7 @@ VERSION
>   #ifndef CONFIG_PPC_BOOK3S_601
>   		__kernel_gettimeofday;
>   		__kernel_clock_gettime;
> +		__kernel_clock_gettime64;
>   		__kernel_clock_getres;
>   		__kernel_time;
>   		__kernel_get_tbfreq;
> diff --git a/arch/powerpc/kernel/vdso32/vgettimeofday.c b/arch/powerpc/kernel/vdso32/vgettimeofday.c
> index 0b9ab4c22ef2..f7f71fecf4ed 100644
> --- a/arch/powerpc/kernel/vdso32/vgettimeofday.c
> +++ b/arch/powerpc/kernel/vdso32/vgettimeofday.c
> @@ -11,6 +11,12 @@ int __c_kernel_clock_gettime(clockid_t clock, struct old_timespec32 *ts,
>   	return __cvdso_clock_gettime32_data(vd, clock, ts);
>   }
>   
> +int __c_kernel_clock_gettime64(clockid_t clock, struct __kernel_timespec *ts,
> +			       const struct vdso_data *vd)
> +{
> +	return __cvdso_clock_gettime_data(vd, clock, ts);
> +}
> +
>   int __c_kernel_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz,
>   			    const struct vdso_data *vd)
>   {



More information about the Linuxppc-dev mailing list