fork: allow arch-override of VMAP stack alignment
authorMark Rutland <mark.rutland@arm.com>
Fri, 14 Jul 2017 11:23:09 +0000 (12:23 +0100)
committerMark Rutland <mark.rutland@arm.com>
Tue, 15 Aug 2017 17:34:46 +0000 (18:34 +0100)
commit48ac3c18cc62d4a23d5dc5c59f8720589d0de14b
treecf21c9b379b4acf9a509d85f6b5edb02a2b86f80
parentc5bc503cbeee8586395aa541d2b53c69c3dd6930
fork: allow arch-override of VMAP stack alignment

In some cases, an architecture might wish its stacks to be aligned to a
boundary larger than THREAD_SIZE. For example, using an alignment of
double THREAD_SIZE can allow for stack overflows smaller than
THREAD_SIZE to be detected by checking a single bit of the stack
pointer.

This patch allows architectures to override the alignment of VMAP'd
stacks, by defining THREAD_ALIGN. Where not defined, this defaults to
THREAD_SIZE, as is the case today.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: linux-kernel@vger.kernel.org
include/linux/thread_info.h
kernel/fork.c