On Wed, Nov 20, 2019 at 11:49 PM Ben Hutchings <ben.hutchings@xxxxxxxxxxxxxxx> wrote: > > On Fri, 2019-11-08 at 22:07 +0100, Arnd Bergmann wrote: > [...] > > --- a/arch/x86/include/uapi/asm/sembuf.h > > +++ b/arch/x86/include/uapi/asm/sembuf.h > > @@ -21,9 +21,9 @@ struct semid64_ds { > > unsigned long sem_ctime; /* last change time */ > > unsigned long sem_ctime_high; > > #else > > - __kernel_time_t sem_otime; /* last semop time */ > > + long sem_otime; /* last semop time */ > > __kernel_ulong_t __unused1; > > - __kernel_time_t sem_ctime; /* last change time */ > > + long sem_ctime; /* last change time */ > > __kernel_ulong_t __unused2; > > #endif > > __kernel_ulong_t sem_nsems; /* no. of semaphores in array */ > [...] > > We need to use __kernel_long_t here to do the right thing on x32. Good catch, thanks for the review! I applied the patch below now on top. Arnd commit c7ebd8a1c1825c3197732ea692cf3dde34a644f5 (HEAD) Author: Arnd Bergmann <arnd@xxxxxxxx> Date: Thu Nov 21 15:25:04 2019 +0100 y2038: ipc: fix x32 ABI breakage The correct type on x32 is 64-bit wide, same as for the other struct members around it, so use __kernel_long_t in place of the original __kernel_time_t here, corresponding to the rest of the structure. Fixes: caf5e32d4ea7 ("y2038: ipc: remove __kernel_time_t reference from headers") Reported-by: Ben Hutchings <ben.hutchings@xxxxxxxxxxxxxxx> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> diff --git a/arch/x86/include/uapi/asm/sembuf.h b/arch/x86/include/uapi/asm/sembuf.h index 7c1b156695ba..20cab43c4b15 100644 --- a/arch/x86/include/uapi/asm/sembuf.h +++ b/arch/x86/include/uapi/asm/sembuf.h @@ -21,9 +21,9 @@ struct semid64_ds { unsigned long sem_ctime; /* last change time */ unsigned long sem_ctime_high; #else - long sem_otime; /* last semop time */ + __kernel_long_t sem_otime; /* last semop time */ __kernel_ulong_t __unused1; - long sem_ctime; /* last change time */ + __kenrel_long_t sem_ctime; /* last change time */ __kernel_ulong_t __unused2; #endif __kernel_ulong_t sem_nsems; /* no. of semaphores in array */