linux/arch
H. Peter Anvin 31796ac4e8 x32: Fix alignment fail in struct compat_siginfo
Adding struct _sigchld_x32 caused a misalignment cascade in struct
siginfo, because union _sifields is located on an 4-byte boundary
(8-byte misaligned.)

Adding new fields that are 8-byte aligned caused the intermediate
structures to also be aligned to 8 bytes, thereby adding padding in
unexpected places.

Thus, change s64 to compat_s64 here, which makes it "misaligned on
paper".  In reality these fields *are* actually aligned (there are 3
preceeding ints outside the union and 3 inside struct _sigchld_x32),
but because of the intervening union and struct it is not possible for
gcc to avoid padding without breaking the ABI.

Reported-and-tested-by: H. J. Lu <hjl.tools@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Link: http://lkml.kernel.org/r/1329696488-16970-1-git-send-email-hpa@zytor.com
2012-03-14 14:27:52 -07:00
..
alpha alpha: Use generic posix_types.h 2012-02-14 12:01:27 -08:00
arm arm: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
avr32 avr32: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
blackfin Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
c6x C6X: replace tick_nohz_stop/restart_sched_tick calls 2012-01-08 15:13:16 -05:00
cris cris: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
frv frv: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
h8300 h8300: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
hexagon lib: move GENERIC_IOMAP to lib/Kconfig 2011-11-24 22:21:19 +02:00
ia64 ia64: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
m32r m32r: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
m68k m68k: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
microblaze Revert "microblaze: Add topology init" 2012-01-31 09:06:52 +01:00
mips fs: Remove missed ->fds_bits from cessation use of fd_set structs internally 2012-02-24 14:04:50 +01:00
mn10300 mn10300: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
openrisc Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2012-01-16 14:34:54 -08:00
parisc parisc: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
powerpc Wrap accesses to the fd_sets in struct fdtable 2012-02-19 10:30:52 -08:00
s390 s390: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
score score: fix off-by-one index into syscall table 2012-01-23 08:38:49 -08:00
sh sh: Remove unnecessary posix_types.h type overrides 2012-02-14 12:01:29 -08:00
sparc sparc: Use generic posix_types.h 2012-02-14 12:01:30 -08:00
tile Merge branch 'for-next' of git://git.infradead.org/users/dhowells/linux-headers 2012-01-14 18:03:30 -08:00
um Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit 2012-01-17 16:41:31 -08:00
unicore32 Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
x86 x32: Fix alignment fail in struct compat_siginfo 2012-03-14 14:27:52 -07:00
xtensa xtensa: Use generic posix_types.h 2012-02-14 12:01:30 -08:00
.gitignore
Kconfig mm,x86,um: move CMPXCHG_DOUBLE config option 2012-01-12 20:13:03 -08:00