linux-uconsole/arch/x86/include/uapi/asm
Arnd Bergmann 72b4a16e75 x86/ipc: Fix x32 version of shmid64_ds and msqid64_ds
commit 1a512c0882 upstream.

A bugfix broke the x32 shmid64_ds and msqid64_ds data structure layout
(as seen from user space)  a few years ago: Originally, __BITS_PER_LONG
was defined as 64 on x32, so we did not have padding after the 64-bit
__kernel_time_t fields, After __BITS_PER_LONG got changed to 32,
applications would observe extra padding.

In other parts of the uapi headers we seem to have a mix of those
expecting either 32 or 64 on x32 applications, so we can't easily revert
the path that broke these two structures.

Instead, this patch decouples x32 from the other architectures and moves
it back into arch specific headers, partially reverting the even older
commit 73a2d096fd ("x86: remove all now-duplicate header files").

It's not clear whether this ever made any difference, since at least
glibc carries its own (correct) copy of both of these header files,
so possibly no application has ever observed the definitions here.

Based on a suggestion from H.J. Lu, I tried out the tool from
https://github.com/hjl-tools/linux-header to find other such
bugs, which pointed out the same bug in statfs(), which also has
a separate (correct) copy in glibc.

Fixes: f4b4aae182 ("x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: "H . J . Lu" <hjl.tools@gmail.com>
Cc: Jeffrey Walton <noloader@gmail.com>
Cc: stable@vger.kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://lkml.kernel.org/r/20180424212013.3967461-1-arnd@arndb.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-02 07:53:43 -07:00
..
a.out.h
auxvec.h
bitsperlong.h x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds 2015-10-02 09:43:21 +02:00
boot.h
bootparam.h x86/boot: Obsolete the MCA sys_desc_table 2015-07-21 10:55:11 +02:00
byteorder.h
debugreg.h
e820.h libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option 2015-08-19 00:34:34 -04:00
errno.h
fcntl.h
hw_breakpoint.h
hyperv.h drivers/hv: share Hyper-V SynIC constants with userspace 2015-11-04 16:24:33 +01:00
ioctl.h
ioctls.h
ipcbuf.h
ist.h
Kbuild perf kvm: Use defines of kvm events 2014-07-16 17:57:32 -03:00
kvm.h KVM: x86: rename quirk constants to KVM_X86_QUIRK_* 2015-07-23 08:24:42 +02:00
kvm_para.h kvm uapi: Add KICK_CPU and PV_UNHALT definition to uapi 2013-08-26 12:46:01 +03:00
kvm_perf.h perf kvm: Use defines of kvm events 2014-07-16 17:57:32 -03:00
ldt.h x86/tls: Don't validate lm in set_thread_area() after all 2014-12-18 12:12:26 +01:00
mce.h x86/mce: Include linux/ioctl.h in uapi mce header 2015-10-11 21:24:27 +02:00
mman.h
msgbuf.h x86/ipc: Fix x32 version of shmid64_ds and msqid64_ds 2018-05-02 07:53:43 -07:00
msr.h x86/uapi: Do not export <asm/msr-index.h> as part of the user API headers 2015-06-07 15:36:04 +02:00
mtrr.h x86/mm/mtrr: Use symbolic define as a retval for disabled MTRRs 2015-05-27 14:40:57 +02:00
param.h
perf_regs.h
poll.h
posix_types.h
posix_types_32.h
posix_types_64.h
posix_types_x32.h
prctl.h
processor-flags.h kaiser: enhanced by kernel and user PCIDs 2018-01-05 15:44:25 +01:00
ptrace-abi.h x86/asm/entry/64: Fix comments 2015-03-04 22:50:49 +01:00
ptrace.h x86/asm/entry/64: Fix comments 2015-03-04 22:50:49 +01:00
resource.h
sembuf.h x86, uapi, x32: Use __kernel_ulong_t in x86 struct semid64_ds 2014-01-20 14:45:13 -08:00
setup.h
shmbuf.h x86/ipc: Fix x32 version of shmid64_ds and msqid64_ds 2018-05-02 07:53:43 -07:00
sigcontext.h x86/headers: Clean up too long lines 2015-09-14 11:09:33 +02:00
sigcontext32.h x86/headers: Remove direct sigcontext32.h uses 2015-09-08 10:03:59 +02:00
siginfo.h
signal.h
socket.h
sockios.h
stat.h x86, x32: Use __kernel_long_t/__kernel_ulong_t in x86-64 stat.h 2013-12-20 16:04:35 -08:00
statfs.h
svm.h KVM: x86: work around infinite loop in microcode when #AC is delivered 2015-11-10 12:06:24 +01:00
swab.h
termbits.h
termios.h
types.h
ucontext.h
unistd.h
vm86.h
vmx.h KVM: x86: add pcommit support 2015-10-01 15:06:35 +02:00
vsyscall.h x86, vdso: Move the vvar and hpet mappings next to the 64-bit vDSO 2014-05-05 13:19:01 -07:00