fork: Fix task_struct alignment
authorPeter Zijlstra <peterz@infradead.org>
Sat, 18 Feb 2017 14:26:45 +0000 (15:26 +0100)
committerIngo Molnar <mingo@kernel.org>
Mon, 20 Feb 2017 10:22:37 +0000 (11:22 +0100)
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@intel.com>
Tested-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: e274795ea7b7 ("locking/mutex: Fix mutex handoff")
Link: http://lkml.kernel.org/r/20170218142645.GH6500@twins.programming.kicks-ass.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/fork.c

index a90510d0bbf8929b6ab91801d9d66902579bde31..ea33f8adc03243052bf8e0088de63b2672f85d53 100644 (file)
@@ -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",