y2038: vdso: change timespec to __kernel_old_timespec
authorArnd Bergmann <arnd@arndb.de>
Sun, 27 Oct 2019 18:26:41 +0000 (19:26 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 15 Nov 2019 13:38:28 +0000 (14:38 +0100)
In order to remove 'timespec' completely from the kernel, all
internal uses should be converted to a y2038-safe type, while
those that are only for compatibity with existing user space
should be marked appropriately.

Change vdso to use __kernel_old_timespec in order to avoid
the deprecated type and mark these interfaces as outdated.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/ia64/kernel/asm-offsets.c
arch/nds32/kernel/vdso/gettimeofday.c
arch/sparc/vdso/vclock_gettime.c
arch/x86/um/vdso/um_vdso.c

index 00e8e2a1eb19c304477cceb8af2f3b4c244132d3..fb0deb8a42218ad2514db46904dd28daf86ece61 100644 (file)
@@ -211,7 +211,7 @@ void foo(void)
               offsetof (struct cpuinfo_ia64, ptce_stride));
        BLANK();
        DEFINE(IA64_TIMESPEC_TV_NSEC_OFFSET,
-              offsetof (struct timespec, tv_nsec));
+              offsetof (struct __kernel_old_timespec, tv_nsec));
        DEFINE(IA64_TIME_SN_SPEC_SNSEC_OFFSET,
               offsetof (struct time_sn_spec, snsec));
 
index 1e69fd5b067bfd84aa6325c8635e12b98c26d876..687abc7145f505110ec4f20decde96e33519d087 100644 (file)
@@ -48,9 +48,9 @@ static notrace int vdso_read_retry(const struct vdso_data *vdata, u32 start)
 }
 
 static notrace long clock_gettime_fallback(clockid_t _clkid,
-                                          struct timespec *_ts)
+                                          struct __kernel_old_timespec *_ts)
 {
-       register struct timespec *ts asm("$r1") = _ts;
+       register struct __kernel_old_timespec *ts asm("$r1") = _ts;
        register clockid_t clkid asm("$r0") = _clkid;
        register long ret asm("$r0");
 
@@ -63,7 +63,7 @@ static notrace long clock_gettime_fallback(clockid_t _clkid,
        return ret;
 }
 
-static notrace int do_realtime_coarse(struct timespec *ts,
+static notrace int do_realtime_coarse(struct __kernel_old_timespec *ts,
                                      struct vdso_data *vdata)
 {
        u32 seq;
@@ -78,7 +78,7 @@ static notrace int do_realtime_coarse(struct timespec *ts,
        return 0;
 }
 
-static notrace int do_monotonic_coarse(struct timespec *ts,
+static notrace int do_monotonic_coarse(struct __kernel_old_timespec *ts,
                                       struct vdso_data *vdata)
 {
        struct timespec tomono;
@@ -115,7 +115,7 @@ static notrace inline u64 vgetsns(struct vdso_data *vdso)
        return ((u64) cycle_delta & vdso->cs_mask) * vdso->cs_mult;
 }
 
-static notrace int do_realtime(struct timespec *ts, struct vdso_data *vdata)
+static notrace int do_realtime(struct __kernel_old_timespec *ts, struct vdso_data *vdata)
 {
        unsigned count;
        u64 ns;
@@ -133,7 +133,7 @@ static notrace int do_realtime(struct timespec *ts, struct vdso_data *vdata)
        return 0;
 }
 
-static notrace int do_monotonic(struct timespec *ts, struct vdso_data *vdata)
+static notrace int do_monotonic(struct __kernel_old_timespec *ts, struct vdso_data *vdata)
 {
        struct timespec tomono;
        u64 nsecs;
@@ -158,7 +158,7 @@ static notrace int do_monotonic(struct timespec *ts, struct vdso_data *vdata)
        return 0;
 }
 
-notrace int __vdso_clock_gettime(clockid_t clkid, struct timespec *ts)
+notrace int __vdso_clock_gettime(clockid_t clkid, struct __kernel_old_timespec *ts)
 {
        struct vdso_data *vdata;
        int ret = -1;
@@ -191,10 +191,10 @@ notrace int __vdso_clock_gettime(clockid_t clkid, struct timespec *ts)
 }
 
 static notrace int clock_getres_fallback(clockid_t _clk_id,
-                                         struct timespec *_res)
+                                         struct __kernel_old_timespec *_res)
 {
        register clockid_t clk_id asm("$r0") = _clk_id;
-       register struct timespec *res asm("$r1") = _res;
+       register struct __kernel_old_timespec *res asm("$r1") = _res;
        register int ret asm("$r0");
 
        asm volatile ("movi     $r15, %3\n"
@@ -206,7 +206,7 @@ static notrace int clock_getres_fallback(clockid_t _clk_id,
        return ret;
 }
 
-notrace int __vdso_clock_getres(clockid_t clk_id, struct timespec *res)
+notrace int __vdso_clock_getres(clockid_t clk_id, struct __kernel_old_timespec *res)
 {
        struct vdso_data *vdata = __get_datapage();
 
@@ -248,7 +248,7 @@ static notrace inline int gettimeofday_fallback(struct __kernel_old_timeval *_tv
 
 notrace int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
 {
-       struct timespec ts;
+       struct __kernel_old_timespec ts;
        struct vdso_data *vdata;
        int ret;
 
index a20c5030578d109685b1783582e6820de5d84b3a..e794edde675548230e20d7b14fd3ff6c83405d32 100644 (file)
@@ -63,7 +63,7 @@ notrace static __always_inline struct vvar_data *get_vvar_data(void)
        return (struct vvar_data *) ret;
 }
 
-notrace static long vdso_fallback_gettime(long clock, struct timespec *ts)
+notrace static long vdso_fallback_gettime(long clock, struct __kernel_old_timespec *ts)
 {
        register long num __asm__("g1") = __NR_clock_gettime;
        register long o0 __asm__("o0") = clock;
@@ -144,7 +144,7 @@ notrace static __always_inline u64 vgetsns_stick(struct vvar_data *vvar)
 }
 
 notrace static __always_inline int do_realtime(struct vvar_data *vvar,
-                                              struct timespec *ts)
+                                              struct __kernel_old_timespec *ts)
 {
        unsigned long seq;
        u64 ns;
@@ -164,7 +164,7 @@ notrace static __always_inline int do_realtime(struct vvar_data *vvar,
 }
 
 notrace static __always_inline int do_realtime_stick(struct vvar_data *vvar,
-                                                    struct timespec *ts)
+                                                    struct __kernel_old_timespec *ts)
 {
        unsigned long seq;
        u64 ns;
@@ -184,7 +184,7 @@ notrace static __always_inline int do_realtime_stick(struct vvar_data *vvar,
 }
 
 notrace static __always_inline int do_monotonic(struct vvar_data *vvar,
-                                               struct timespec *ts)
+                                               struct __kernel_old_timespec *ts)
 {
        unsigned long seq;
        u64 ns;
@@ -204,7 +204,7 @@ notrace static __always_inline int do_monotonic(struct vvar_data *vvar,
 }
 
 notrace static __always_inline int do_monotonic_stick(struct vvar_data *vvar,
-                                                     struct timespec *ts)
+                                                     struct __kernel_old_timespec *ts)
 {
        unsigned long seq;
        u64 ns;
@@ -224,7 +224,7 @@ notrace static __always_inline int do_monotonic_stick(struct vvar_data *vvar,
 }
 
 notrace static int do_realtime_coarse(struct vvar_data *vvar,
-                                     struct timespec *ts)
+                                     struct __kernel_old_timespec *ts)
 {
        unsigned long seq;
 
@@ -237,7 +237,7 @@ notrace static int do_realtime_coarse(struct vvar_data *vvar,
 }
 
 notrace static int do_monotonic_coarse(struct vvar_data *vvar,
-                                      struct timespec *ts)
+                                      struct __kernel_old_timespec *ts)
 {
        unsigned long seq;
 
@@ -251,7 +251,7 @@ notrace static int do_monotonic_coarse(struct vvar_data *vvar,
 }
 
 notrace int
-__vdso_clock_gettime(clockid_t clock, struct timespec *ts)
+__vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts)
 {
        struct vvar_data *vvd = get_vvar_data();
 
@@ -275,11 +275,11 @@ __vdso_clock_gettime(clockid_t clock, struct timespec *ts)
        return vdso_fallback_gettime(clock, ts);
 }
 int
-clock_gettime(clockid_t, struct timespec *)
+clock_gettime(clockid_t, struct __kernel_old_timespec *)
        __attribute__((weak, alias("__vdso_clock_gettime")));
 
 notrace int
-__vdso_clock_gettime_stick(clockid_t clock, struct timespec *ts)
+__vdso_clock_gettime_stick(clockid_t clock, struct __kernel_old_timespec *ts)
 {
        struct vvar_data *vvd = get_vvar_data();
 
@@ -311,7 +311,7 @@ __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
        if (likely(vvd->vclock_mode != VCLOCK_NONE)) {
                if (likely(tv != NULL)) {
                        union tstv_t {
-                               struct timespec ts;
+                               struct __kernel_old_timespec ts;
                                struct __kernel_old_timeval tv;
                        } *tstv = (union tstv_t *) tv;
                        do_realtime(vvd, &tstv->ts);
@@ -347,7 +347,7 @@ __vdso_gettimeofday_stick(struct __kernel_old_timeval *tv, struct timezone *tz)
        if (likely(vvd->vclock_mode != VCLOCK_NONE)) {
                if (likely(tv != NULL)) {
                        union tstv_t {
-                               struct timespec ts;
+                               struct __kernel_old_timespec ts;
                                struct __kernel_old_timeval tv;
                        } *tstv = (union tstv_t *) tv;
                        do_realtime_stick(vvd, &tstv->ts);
index 845336c11364c40b088bafbef6d8426471a89841..371724cf70da19de11f9e03e94f6fb9d1783fc98 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/getcpu.h>
 #include <asm/unistd.h>
 
-int __vdso_clock_gettime(clockid_t clock, struct timespec *ts)
+int __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts)
 {
        long ret;
 
@@ -22,7 +22,7 @@ int __vdso_clock_gettime(clockid_t clock, struct timespec *ts)
 
        return ret;
 }
-int clock_gettime(clockid_t, struct timespec *)
+int clock_gettime(clockid_t, struct __kernel_old_timespec *)
        __attribute__((weak, alias("__vdso_clock_gettime")));
 
 int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)