Commit 2a785996 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

y2038: uapi: change __kernel_time_t to __kernel_old_time_t



This is mainly a patch for clarification, and to let us remove
the time_t definition from the kernel to prevent new users from
creeping in that might not be y2038-safe.

All remaining uses of 'time_t' or '__kernel_time_t' are part of
the user API that cannot be changed by that either have a
replacement or that do not suffer from the y2038 overflow.

Acked-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
Acked-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 1bf883c1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1076,7 +1076,7 @@ asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice);
asmlinkage long sys_alarm(unsigned int seconds);
asmlinkage long sys_getpgrp(void);
asmlinkage long sys_pause(void);
asmlinkage long sys_time(time_t __user *tloc);
asmlinkage long sys_time(__kernel_old_time_t __user *tloc);
asmlinkage long sys_time32(old_time32_t __user *tloc);
#ifdef __ARCH_WANT_SYS_UTIME
asmlinkage long sys_utime(char __user *filename,
@@ -1116,7 +1116,7 @@ asmlinkage long sys_sysfs(int option,
asmlinkage long sys_fork(void);

/* obsolete: kernel/time/time.c */
asmlinkage long sys_stime(time_t __user *tptr);
asmlinkage long sys_stime(__kernel_old_time_t __user *tptr);
asmlinkage long sys_stime32(old_time32_t __user *tptr);

/* obsolete: kernel/signal.c */
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
#include <linux/time64.h>
#include <linux/timex.h>

#define TIME_T_MAX	(time_t)((1UL << ((sizeof(time_t) << 3) - 1)) - 1)
#define TIME_T_MAX	(__kernel_old_time_t)((1UL << ((sizeof(__kernel_old_time_t) << 3) - 1)) - 1)

typedef s32		old_time32_t;

+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ typedef __kernel_ptrdiff_t ptrdiff_t;

#ifndef _TIME_T
#define _TIME_T
typedef __kernel_time_t		time_t;
typedef __kernel_old_time_t	time_t;
#endif

#ifndef _CLOCK_T
+3 −3
Original line number Diff line number Diff line
@@ -83,9 +83,9 @@ struct cyclades_monitor {
 * open)
 */
struct cyclades_idle_stats {
    __kernel_time_t in_use;	/* Time device has been in use (secs) */
    __kernel_time_t recv_idle;	/* Time since last char received (secs) */
    __kernel_time_t xmit_idle;	/* Time since last char transmitted (secs) */
    __kernel_old_time_t in_use;	/* Time device has been in use (secs) */
    __kernel_old_time_t recv_idle; /* Time since last char received (secs) */
    __kernel_old_time_t xmit_idle; /* Time since last char transmitted (secs) */
    unsigned long  recv_bytes;	/* Bytes received */
    unsigned long  xmit_bytes;	/* Bytes transmitted */
    unsigned long  overruns;	/* Input overruns */
+3 −3
Original line number Diff line number Diff line
@@ -19,9 +19,9 @@ struct msqid_ds {
	struct ipc_perm msg_perm;
	struct msg *msg_first;		/* first message on queue,unused  */
	struct msg *msg_last;		/* last message in queue,unused */
	__kernel_time_t msg_stime;	/* last msgsnd time */
	__kernel_time_t msg_rtime;	/* last msgrcv time */
	__kernel_time_t msg_ctime;	/* last change time */
	__kernel_old_time_t msg_stime;	/* last msgsnd time */
	__kernel_old_time_t msg_rtime;	/* last msgrcv time */
	__kernel_old_time_t msg_ctime;	/* last change time */
	unsigned long  msg_lcbytes;	/* Reuse junk fields for 32 bit */
	unsigned long  msg_lqbytes;	/* ditto */
	unsigned short msg_cbytes;	/* current number of bytes on queue */
Loading