Arnd Bergmann
f991f01571
y2038: asm-generic: Extend sysvipc data structures
...
Most architectures now use the asm-generic copy of the sysvipc data
structures (msqid64_ds, semid64_ds, shmid64_ds), which use 32-bit
__kernel_time_t on 32-bit architectures but have padding behind them to
allow extending the type to 64-bit.
Unfortunately, that fails on all big-endian architectures, which have the
padding on the wrong side. As so many of them get it wrong, we decided to
not bother even trying to fix it up when we introduced the asm-generic
copy. Instead we always use the padding word now to provide the upper
32 bits of the seconds value, regardless of the endianess.
A libc implementation on a typical big-endian system can deal with
this by providing its own copy of the structure definition to user
space, and swapping the two 32-bit words before returning from the
semctl/shmctl/msgctl system calls.
Note that msqid64_ds and shmid64_ds were broken on x32 since commit
f4b4aae182 ("x86/headers/uapi: Fix __BITS_PER_LONG value for x32
builds"). I have sent a separate fix for that, but as we no longer
have to worry about x32 here, I no longer worry about x32 here and
use 'unsigned long' instead of __kernel_ulong_t.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-04-20 15:57:50 +02:00
..
auxvec.h
UAPI: (Scripted) Disintegrate include/asm-generic
2012-10-04 18:20:15 +01:00
bitsperlong.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
bpf_perf_event.h
bpf: correct broken uapi for BPF_PROG_TYPE_PERF_EVENT program type
2017-12-05 15:02:40 +01:00
errno-base.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
errno.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
fcntl.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
hugetlb_encode.h
mm: hugetlb: define system call hugetlb size encodings in single file
2017-09-06 17:27:28 -07:00
int-l64.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
int-ll64.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
ioctl.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
ioctls.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
ipcbuf.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
Kbuild.asm
uapi: export all headers under uapi directories
2017-05-11 00:21:54 +09:00
kvm_para.h
UAPI: Put a comment into uapi/asm-generic/kvm_para.h and use it from arches
2012-10-17 12:32:07 +01:00
mman-common.h
fs, elf: drop MAP_FIXED usage from elf_map
2018-04-11 10:28:38 -07:00
mman.h
libnvdimm for 4.15
2017-11-17 09:51:57 -08:00
msgbuf.h
y2038: asm-generic: Extend sysvipc data structures
2018-04-20 15:57:50 +02:00
param.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
poll.h
unify {de,}mangle_poll(), get rid of kernel-side POLL...
2018-02-11 14:37:22 -08:00
posix_types.h
time: Add new y2038 safe __kernel_timespec
2018-04-19 13:31:29 +02:00
resource.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
sembuf.h
y2038: asm-generic: Extend sysvipc data structures
2018-04-20 15:57:50 +02:00
setup.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
shmbuf.h
y2038: asm-generic: Extend sysvipc data structures
2018-04-20 15:57:50 +02:00
shmparam.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
siginfo.h
parisc/signal: Add FPE_CONDTRAP for conditional trap handling
2018-04-11 11:40:35 +02:00
signal-defs.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
signal.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
socket.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
sockios.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
stat.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
statfs.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
swab.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
termbits.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
termios.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
types.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
ucontext.h
License cleanup: add SPDX license identifier to uapi header files with no license
2017-11-02 11:19:54 +01:00
unistd.h
asm-generic: clean up asm/unistd.h
2018-03-26 15:56:08 +02:00