task_struct: only use anon struct under randstruct plugin
authorKees Cook <[email protected]>
Tue, 10 Apr 2018 23:32:44 +0000 (16:32 -0700)
committerLinus Torvalds <[email protected]>
Wed, 11 Apr 2018 17:28:35 +0000 (10:28 -0700)
commit2cfe0d3009418a132b93d78642a8059a38fe5944
treebe663132e62f3c0bffff1db9b13ee895b2ce6707
parentd4ef8d3ff005c70f6c9e2ffea14cc65fc8fe328d
task_struct: only use anon struct under randstruct plugin

The original intent for always adding the anonymous struct in
task_struct was to make sure we had compiler coverage.

However, this caused pathological padding of 40 bytes at the start of
task_struct.  Instead, move the anonymous struct to being only used when
struct layout randomization is enabled.

Link: http://lkml.kernel.org/r/20180327213609.GA2964@beast
Fixes: 29e48ce87f1e ("task_struct: Allow randomized")
Signed-off-by: Kees Cook <[email protected]>
Reported-by: Peter Zijlstra <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/compiler-clang.h
include/linux/compiler-gcc.h