[tip:locking/core] fork: Fix task_struct alignment

From: tip-bot for Peter Zijlstra
Date: Mon Feb 20 2017 - 05:26:00 EST


Commit-ID: 95cb64c1fe61e70685a95f6260c8e9cd219fe08c
Gitweb: http://git.kernel.org/tip/95cb64c1fe61e70685a95f6260c8e9cd219fe08c
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
AuthorDate: Sat, 18 Feb 2017 15:26:45 +0100
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Mon, 20 Feb 2017 11:22:37 +0100

fork: Fix task_struct alignment

Stupid bug that wrecked the alignment of task_struct and causes WARN()s
in the x86 FPU code on some platforms.

Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Tested-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Fixes: e274795ea7b7 ("locking/mutex: Fix mutex handoff")
Link: http://lkml.kernel.org/r/20170218142645.GH6500@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
kernel/fork.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/fork.c b/kernel/fork.c
index a90510d..ea33f8a 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -434,7 +434,7 @@ void __init fork_init(void)
#ifndef ARCH_MIN_TASKALIGN
#define ARCH_MIN_TASKALIGN 0
#endif
- int align = min_t(int, L1_CACHE_BYTES, ARCH_MIN_TASKALIGN);
+ int align = max_t(int, L1_CACHE_BYTES, ARCH_MIN_TASKALIGN);

/* create a slab on which task_structs can be allocated */
task_struct_cachep = kmem_cache_create("task_struct",