linux/arch/x86/kernel/fpu
Jiri Olsa 25ec02f2c1 x86/fpu: Properly align size in CHECK_MEMBER_AT_END_OF() macro
The CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) checks whether MEMBER
is last member of TYPE by evaluating:

  offsetof(TYPE::MEMBER) + sizeof(TYPE::MEMBER) == sizeof(TYPE)

and ensuring TYPE::MEMBER is the last member of the TYPE.

This condition breaks on structs that are padded to be
aligned. This patch ensures the TYPE alignment is taken
into account.

This bug was revealed after adding cacheline alignment into
struct sched_entity, which broke task_struct::thread check:

  CHECK_MEMBER_AT_END_OF(struct task_struct, thread);

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Dave Hansen <dave@sr71.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1450707930-3445-1-git-send-email-jolsa@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-01-06 11:06:06 +01:00
..
bugs.c x86/fpu/init: Propagate __init annotations 2015-05-19 15:48:11 +02:00
core.c x86/fpu/math-emu: Fix crash in fork() 2015-08-22 10:23:03 +02:00
init.c x86/fpu: Properly align size in CHECK_MEMBER_AT_END_OF() macro 2016-01-06 11:06:06 +01:00
Makefile x86/fpu: Factor out the FPU regset code into fpu/regset.c 2015-05-19 15:48:09 +02:00
regset.c x86/fpu: Rename XSAVE macros 2015-09-14 12:21:46 +02:00
signal.c x86/fpu: Fix 32-bit signal frame handling 2015-11-12 09:23:45 +01:00
xstate.c x86/fpu: Fix get_xsave_addr() behavior under virtualization 2015-11-12 09:34:58 +01:00