Re: linux-next: build failure after merge of the y2038 tree

From: Arnd Bergmann
Date: Thu Nov 14 2019 - 07:10:34 EST


On Thu, Nov 14, 2019 at 5:38 AM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> After merging the y2038 tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> arch/powerpc/kernel/time.c: In function 'update_vsyscall':
> arch/powerpc/kernel/time.c:960:33: error: 'struct timespec64' has no member named 'sec'
> 960 | vdso_data->stamp_xtime_sec = xt.sec;
> | ^
> arch/powerpc/kernel/time.c:961:34: error: 'struct timespec64' has no member named 'nsec'
> 961 | vdso_data->stamp_xtime_nsec = xt.nsec;
> | ^
>
> Caused by commit
>
> 009a81339beb ("y2038: vdso: powerpc: avoid timespec references")
>
> I have added the following patch for today.
>
> From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Date: Thu, 14 Nov 2019 15:28:13 +1100
> Subject: [PATCH] fix up for "y2038: vdso: powerpc: avoid timespec references"
>
> Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>

Folded into my patch, thanks!

> diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
> index ee9ba3a48c76..2d13cea13954 100644
> --- a/arch/powerpc/kernel/time.c
> +++ b/arch/powerpc/kernel/time.c
> @@ -957,8 +957,8 @@ void update_vsyscall(struct timekeeper *tk)
> vdso_data->tb_to_xs = new_tb_to_xs;
> vdso_data->wtom_clock_sec = tk->wall_to_monotonic.tv_sec;
> vdso_data->wtom_clock_nsec = tk->wall_to_monotonic.tv_nsec;
> - vdso_data->stamp_xtime_sec = xt.sec;
> - vdso_data->stamp_xtime_nsec = xt.nsec;
> + vdso_data->stamp_xtime_sec = xt.tv_sec;
> + vdso_data->stamp_xtime_nsec = xt.tv_nsec;
> vdso_data->stamp_sec_fraction = frac_sec;
> smp_wmb();
> ++(vdso_data->tb_update_count);

I was sure I had at least build-tested this, but looking at 'git reflog -p',
I only see the same broken version that never worked, so I clearly did not.

Arnd