Context |
Check |
Description |
snowpatch_ozlabs/apply_patch |
warning
|
Failed to apply on branch powerpc/merge (a437a1c6e54c045f19f7d894b2a749bc5155f19a)
|
snowpatch_ozlabs/apply_patch |
warning
|
Failed to apply on branch powerpc/next (612ee81b9461475b5a5612c2e8d71559dd3c7920)
|
snowpatch_ozlabs/apply_patch |
warning
|
Failed to apply on branch linus/master (8005803a2ca0af49f36f6e9329b5ecda3df27347)
|
snowpatch_ozlabs/apply_patch |
warning
|
Failed to apply on branch powerpc/fixes (a8a30219ba78b1abb92091102b632f8e9bbdbf03)
|
snowpatch_ozlabs/apply_patch |
success
|
Successfully applied on branch linux-next (60c1769a45f4b6beddcc48843739d7d41b88dc1c)
|
snowpatch_ozlabs/checkpatch |
success
|
total: 0 errors, 0 warnings, 0 checks, 37 lines checked
|
@@ -843,16 +843,17 @@ config HAVE_ARCH_VMAP_STACK
config VMAP_STACK
default y
bool "Use a virtually-mapped stack"
- depends on HAVE_ARCH_VMAP_STACK && !KASAN
+ depends on HAVE_ARCH_VMAP_STACK
+ depends on !KASAN || KASAN_VMALLOC
---help---
Enable this if you want the use virtually-mapped kernel stacks
with guard pages. This causes kernel stack overflows to be
caught immediately rather than causing difficult-to-diagnose
corruption.
- This is presently incompatible with KASAN because KASAN expects
- the stack to map directly to the KASAN shadow map using a formula
- that is incorrect if the stack is in vmalloc space.
+ To use this with KASAN, the architecture must support backing
+ virtual mappings with real shadow memory, and KASAN_VMALLOC must
+ be enabled.
config ARCH_OPTIONAL_KERNEL_RWX
def_bool n
@@ -94,6 +94,7 @@
#include <linux/livepatch.h>
#include <linux/thread_info.h>
#include <linux/stackleak.h>
+#include <linux/kasan.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
@@ -224,6 +225,9 @@ static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node)
if (!s)
continue;
+ /* Clear the KASAN shadow of the stack. */
+ kasan_unpoison_shadow(s->addr, THREAD_SIZE);
+
/* Clear stale pointers from reused stack. */
memset(s->addr, 0, THREAD_SIZE);