Skip to content

Commit 00bf25d

Browse files
committed
y2038: use time32 syscall names on 32-bit
This is the big flip, where all 32-bit architectures set COMPAT_32BIT_TIME and use the _time32 system calls from the former compat layer instead of the system calls that take __kernel_timespec and similar arguments. The temporary redirects for __kernel_timespec, __kernel_itimerspec and __kernel_timex can get removed with this. It would be easy to split this commit by architecture, but with the new generated system call tables, it's easy enough to do it all at once, which makes it a little easier to check that the changes are the same in each table. Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1 parent 8dabe72 commit 00bf25d

File tree

13 files changed

+335
-254
lines changed

13 files changed

+335
-254
lines changed

arch/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ config 64BIT_TIME
759759
handling.
760760

761761
config COMPAT_32BIT_TIME
762-
def_bool (!64BIT && 64BIT_TIME) || COMPAT
762+
def_bool !64BIT || COMPAT
763763
help
764764
This enables 32 bit time_t support in addition to 64 bit time_t support.
765765
This is relevant on all 32-bit architectures, and 64-bit architectures

arch/arm/kernel/sys_oabi-compat.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,10 @@ struct oabi_sembuf {
317317
asmlinkage long sys_oabi_semtimedop(int semid,
318318
struct oabi_sembuf __user *tsops,
319319
unsigned nsops,
320-
const struct timespec __user *timeout)
320+
const struct old_timespec32 __user *timeout)
321321
{
322322
struct sembuf *sops;
323-
struct timespec local_timeout;
323+
struct old_timespec32 local_timeout;
324324
long err;
325325
int i;
326326

@@ -350,7 +350,7 @@ asmlinkage long sys_oabi_semtimedop(int semid,
350350
} else {
351351
mm_segment_t fs = get_fs();
352352
set_fs(KERNEL_DS);
353-
err = sys_semtimedop(semid, sops, nsops, timeout);
353+
err = sys_semtimedop_time32(semid, sops, nsops, timeout);
354354
set_fs(fs);
355355
}
356356
kfree(sops);
@@ -375,7 +375,7 @@ asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third,
375375
return sys_oabi_semtimedop(first,
376376
(struct oabi_sembuf __user *)ptr,
377377
second,
378-
(const struct timespec __user *)fifth);
378+
(const struct old_timespec32 __user *)fifth);
379379
default:
380380
return sys_ipc(call, first, second, third, ptr, fifth);
381381
}

arch/arm/tools/syscall.tbl

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
121 common setdomainname sys_setdomainname
138138
122 common uname sys_newuname
139139
# 123 was sys_modify_ldt
140-
124 common adjtimex sys_adjtimex
140+
124 common adjtimex sys_adjtimex_time32
141141
125 common mprotect sys_mprotect
142142
126 common sigprocmask sys_sigprocmask
143143
# 127 was sys_create_module
@@ -174,8 +174,8 @@
174174
158 common sched_yield sys_sched_yield
175175
159 common sched_get_priority_max sys_sched_get_priority_max
176176
160 common sched_get_priority_min sys_sched_get_priority_min
177-
161 common sched_rr_get_interval sys_sched_rr_get_interval
178-
162 common nanosleep sys_nanosleep
177+
161 common sched_rr_get_interval sys_sched_rr_get_interval_time32
178+
162 common nanosleep sys_nanosleep_time32
179179
163 common mremap sys_mremap
180180
164 common setresuid sys_setresuid16
181181
165 common getresuid sys_getresuid16
@@ -190,7 +190,7 @@
190190
174 common rt_sigaction sys_rt_sigaction
191191
175 common rt_sigprocmask sys_rt_sigprocmask
192192
176 common rt_sigpending sys_rt_sigpending
193-
177 common rt_sigtimedwait sys_rt_sigtimedwait
193+
177 common rt_sigtimedwait sys_rt_sigtimedwait_time32
194194
178 common rt_sigqueueinfo sys_rt_sigqueueinfo
195195
179 common rt_sigsuspend sys_rt_sigsuspend
196196
180 common pread64 sys_pread64 sys_oabi_pread64
@@ -254,12 +254,12 @@
254254
237 common fremovexattr sys_fremovexattr
255255
238 common tkill sys_tkill
256256
239 common sendfile64 sys_sendfile64
257-
240 common futex sys_futex
257+
240 common futex sys_futex_time32
258258
241 common sched_setaffinity sys_sched_setaffinity
259259
242 common sched_getaffinity sys_sched_getaffinity
260260
243 common io_setup sys_io_setup
261261
244 common io_destroy sys_io_destroy
262-
245 common io_getevents sys_io_getevents
262+
245 common io_getevents sys_io_getevents_time32
263263
246 common io_submit sys_io_submit
264264
247 common io_cancel sys_io_cancel
265265
248 common exit_group sys_exit_group
@@ -272,14 +272,14 @@
272272
# 255 for get_thread_area
273273
256 common set_tid_address sys_set_tid_address
274274
257 common timer_create sys_timer_create
275-
258 common timer_settime sys_timer_settime
276-
259 common timer_gettime sys_timer_gettime
275+
258 common timer_settime sys_timer_settime32
276+
259 common timer_gettime sys_timer_gettime32
277277
260 common timer_getoverrun sys_timer_getoverrun
278278
261 common timer_delete sys_timer_delete
279-
262 common clock_settime sys_clock_settime
280-
263 common clock_gettime sys_clock_gettime
281-
264 common clock_getres sys_clock_getres
282-
265 common clock_nanosleep sys_clock_nanosleep
279+
262 common clock_settime sys_clock_settime32
280+
263 common clock_gettime sys_clock_gettime32
281+
264 common clock_getres sys_clock_getres_time32
282+
265 common clock_nanosleep sys_clock_nanosleep_time32
283283
266 common statfs64 sys_statfs64_wrapper
284284
267 common fstatfs64 sys_fstatfs64_wrapper
285285
268 common tgkill sys_tgkill
@@ -290,8 +290,8 @@
290290
273 common pciconfig_write sys_pciconfig_write
291291
274 common mq_open sys_mq_open
292292
275 common mq_unlink sys_mq_unlink
293-
276 common mq_timedsend sys_mq_timedsend
294-
277 common mq_timedreceive sys_mq_timedreceive
293+
276 common mq_timedsend sys_mq_timedsend_time32
294+
277 common mq_timedreceive sys_mq_timedreceive_time32
295295
278 common mq_notify sys_mq_notify
296296
279 common mq_getsetattr sys_mq_getsetattr
297297
280 common waitid sys_waitid
@@ -326,7 +326,7 @@
326326
309 common add_key sys_add_key
327327
310 common request_key sys_request_key
328328
311 common keyctl sys_keyctl
329-
312 common semtimedop sys_semtimedop sys_oabi_semtimedop
329+
312 common semtimedop sys_semtimedop_time32 sys_oabi_semtimedop
330330
313 common vserver
331331
314 common ioprio_set sys_ioprio_set
332332
315 common ioprio_get sys_ioprio_get
@@ -349,8 +349,8 @@
349349
332 common readlinkat sys_readlinkat
350350
333 common fchmodat sys_fchmodat
351351
334 common faccessat sys_faccessat
352-
335 common pselect6 sys_pselect6
353-
336 common ppoll sys_ppoll
352+
335 common pselect6 sys_pselect6_time32
353+
336 common ppoll sys_ppoll_time32
354354
337 common unshare sys_unshare
355355
338 common set_robust_list sys_set_robust_list
356356
339 common get_robust_list sys_get_robust_list
@@ -362,13 +362,13 @@
362362
345 common getcpu sys_getcpu
363363
346 common epoll_pwait sys_epoll_pwait
364364
347 common kexec_load sys_kexec_load
365-
348 common utimensat sys_utimensat
365+
348 common utimensat sys_utimensat_time32
366366
349 common signalfd sys_signalfd
367367
350 common timerfd_create sys_timerfd_create
368368
351 common eventfd sys_eventfd
369369
352 common fallocate sys_fallocate
370-
353 common timerfd_settime sys_timerfd_settime
371-
354 common timerfd_gettime sys_timerfd_gettime
370+
353 common timerfd_settime sys_timerfd_settime32
371+
354 common timerfd_gettime sys_timerfd_gettime32
372372
355 common signalfd4 sys_signalfd4
373373
356 common eventfd2 sys_eventfd2
374374
357 common epoll_create1 sys_epoll_create1
@@ -379,14 +379,14 @@
379379
362 common pwritev sys_pwritev
380380
363 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo
381381
364 common perf_event_open sys_perf_event_open
382-
365 common recvmmsg sys_recvmmsg
382+
365 common recvmmsg sys_recvmmsg_time32
383383
366 common accept4 sys_accept4
384384
367 common fanotify_init sys_fanotify_init
385385
368 common fanotify_mark sys_fanotify_mark
386386
369 common prlimit64 sys_prlimit64
387387
370 common name_to_handle_at sys_name_to_handle_at
388388
371 common open_by_handle_at sys_open_by_handle_at
389-
372 common clock_adjtime sys_clock_adjtime
389+
372 common clock_adjtime sys_clock_adjtime32
390390
373 common syncfs sys_syncfs
391391
374 common sendmmsg sys_sendmmsg
392392
375 common setns sys_setns
@@ -413,6 +413,6 @@
413413
396 common pkey_free sys_pkey_free
414414
397 common statx sys_statx
415415
398 common rseq sys_rseq
416-
399 common io_pgetevents sys_io_pgetevents
416+
399 common io_pgetevents sys_io_pgetevents_time32
417417
400 common migrate_pages sys_migrate_pages
418418
401 common kexec_file_load sys_kexec_file_load

arch/m68k/kernel/syscalls/syscall.tbl

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
121 common setdomainname sys_setdomainname
132132
122 common uname sys_newuname
133133
123 common cacheflush sys_cacheflush
134-
124 common adjtimex sys_adjtimex
134+
124 common adjtimex sys_adjtimex_time32
135135
125 common mprotect sys_mprotect
136136
126 common sigprocmask sys_sigprocmask
137137
127 common create_module sys_ni_syscall
@@ -168,8 +168,8 @@
168168
158 common sched_yield sys_sched_yield
169169
159 common sched_get_priority_max sys_sched_get_priority_max
170170
160 common sched_get_priority_min sys_sched_get_priority_min
171-
161 common sched_rr_get_interval sys_sched_rr_get_interval
172-
162 common nanosleep sys_nanosleep
171+
161 common sched_rr_get_interval sys_sched_rr_get_interval_time32
172+
162 common nanosleep sys_nanosleep_time32
173173
163 common mremap sys_mremap
174174
164 common setresuid sys_setresuid16
175175
165 common getresuid sys_getresuid16
@@ -184,7 +184,7 @@
184184
174 common rt_sigaction sys_rt_sigaction
185185
175 common rt_sigprocmask sys_rt_sigprocmask
186186
176 common rt_sigpending sys_rt_sigpending
187-
177 common rt_sigtimedwait sys_rt_sigtimedwait
187+
177 common rt_sigtimedwait sys_rt_sigtimedwait_time32
188188
178 common rt_sigqueueinfo sys_rt_sigqueueinfo
189189
179 common rt_sigsuspend sys_rt_sigsuspend
190190
180 common pread64 sys_pread64
@@ -242,15 +242,15 @@
242242
232 common removexattr sys_removexattr
243243
233 common lremovexattr sys_lremovexattr
244244
234 common fremovexattr sys_fremovexattr
245-
235 common futex sys_futex
245+
235 common futex sys_futex_time32
246246
236 common sendfile64 sys_sendfile64
247247
237 common mincore sys_mincore
248248
238 common madvise sys_madvise
249249
239 common fcntl64 sys_fcntl64
250250
240 common readahead sys_readahead
251251
241 common io_setup sys_io_setup
252252
242 common io_destroy sys_io_destroy
253-
243 common io_getevents sys_io_getevents
253+
243 common io_getevents sys_io_getevents_time32
254254
244 common io_submit sys_io_submit
255255
245 common io_cancel sys_io_cancel
256256
246 common fadvise64 sys_fadvise64
@@ -262,14 +262,14 @@
262262
252 common remap_file_pages sys_remap_file_pages
263263
253 common set_tid_address sys_set_tid_address
264264
254 common timer_create sys_timer_create
265-
255 common timer_settime sys_timer_settime
266-
256 common timer_gettime sys_timer_gettime
265+
255 common timer_settime sys_timer_settime32
266+
256 common timer_gettime sys_timer_gettime32
267267
257 common timer_getoverrun sys_timer_getoverrun
268268
258 common timer_delete sys_timer_delete
269-
259 common clock_settime sys_clock_settime
270-
260 common clock_gettime sys_clock_gettime
271-
261 common clock_getres sys_clock_getres
272-
262 common clock_nanosleep sys_clock_nanosleep
269+
259 common clock_settime sys_clock_settime32
270+
260 common clock_gettime sys_clock_gettime32
271+
261 common clock_getres sys_clock_getres_time32
272+
262 common clock_nanosleep sys_clock_nanosleep_time32
273273
263 common statfs64 sys_statfs64
274274
264 common fstatfs64 sys_fstatfs64
275275
265 common tgkill sys_tgkill
@@ -280,8 +280,8 @@
280280
270 common set_mempolicy sys_set_mempolicy
281281
271 common mq_open sys_mq_open
282282
272 common mq_unlink sys_mq_unlink
283-
273 common mq_timedsend sys_mq_timedsend
284-
274 common mq_timedreceive sys_mq_timedreceive
283+
273 common mq_timedsend sys_mq_timedsend_time32
284+
274 common mq_timedreceive sys_mq_timedreceive_time32
285285
275 common mq_notify sys_mq_notify
286286
276 common mq_getsetattr sys_mq_getsetattr
287287
277 common waitid sys_waitid
@@ -308,8 +308,8 @@
308308
298 common readlinkat sys_readlinkat
309309
299 common fchmodat sys_fchmodat
310310
300 common faccessat sys_faccessat
311-
301 common pselect6 sys_pselect6
312-
302 common ppoll sys_ppoll
311+
301 common pselect6 sys_pselect6_time32
312+
302 common ppoll sys_ppoll_time32
313313
303 common unshare sys_unshare
314314
304 common set_robust_list sys_set_robust_list
315315
305 common get_robust_list sys_get_robust_list
@@ -323,13 +323,13 @@
323323
313 common kexec_load sys_kexec_load
324324
314 common getcpu sys_getcpu
325325
315 common epoll_pwait sys_epoll_pwait
326-
316 common utimensat sys_utimensat
326+
316 common utimensat sys_utimensat_time32
327327
317 common signalfd sys_signalfd
328328
318 common timerfd_create sys_timerfd_create
329329
319 common eventfd sys_eventfd
330330
320 common fallocate sys_fallocate
331-
321 common timerfd_settime sys_timerfd_settime
332-
322 common timerfd_gettime sys_timerfd_gettime
331+
321 common timerfd_settime sys_timerfd_settime32
332+
322 common timerfd_gettime sys_timerfd_gettime32
333333
323 common signalfd4 sys_signalfd4
334334
324 common eventfd2 sys_eventfd2
335335
325 common epoll_create1 sys_epoll_create1
@@ -349,7 +349,7 @@
349349
339 common prlimit64 sys_prlimit64
350350
340 common name_to_handle_at sys_name_to_handle_at
351351
341 common open_by_handle_at sys_open_by_handle_at
352-
342 common clock_adjtime sys_clock_adjtime
352+
342 common clock_adjtime sys_clock_adjtime32
353353
343 common syncfs sys_syncfs
354354
344 common setns sys_setns
355355
345 common process_vm_readv sys_process_vm_readv
@@ -378,7 +378,7 @@
378378
368 common recvfrom sys_recvfrom
379379
369 common recvmsg sys_recvmsg
380380
370 common shutdown sys_shutdown
381-
371 common recvmmsg sys_recvmmsg
381+
371 common recvmmsg sys_recvmmsg_time32
382382
372 common sendmmsg sys_sendmmsg
383383
373 common userfaultfd sys_userfaultfd
384384
374 common membarrier sys_membarrier

0 commit comments

Comments
 (0)