]> git.baikalelectronics.ru Git - kernel.git/commit
x86/fpu: Properly align size in CHECK_MEMBER_AT_END_OF() macro
authorJiri Olsa <jolsa@kernel.org>
Mon, 21 Dec 2015 14:25:30 +0000 (15:25 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 6 Jan 2016 10:06:06 +0000 (11:06 +0100)
commit86972c698e5b2c4c8324957822b0cb6ece87a935
treeae58731e004a75bbf63297eee3d4b4342337c184
parentdc83713a58842b39478dab80501a1411e265b1da
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>
arch/x86/kernel/fpu/init.c