From: Sami Tolvanen <samitolvanen@google.com> To: Will Deacon <will@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, James Morse <james.morse@arm.com>, Steven Rostedt <rostedt@goodmis.org>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Mark Rutland <mark.rutland@arm.com>, Masahiro Yamada <masahiroy@kernel.org>, Michal Marek <michal.lkml@markovi.net>, Ingo Molnar <mingo@redhat.com>, Peter Zijlstra <peterz@infradead.org>, Juri Lelli <juri.lelli@redhat.com>, Vincent Guittot <vincent.guittot@linaro.org> Cc: Dave Martin <Dave.Martin@arm.com>, Kees Cook <keescook@chromium.org>, Laura Abbott <labbott@redhat.com>, Marc Zyngier <maz@kernel.org>, Masami Hiramatsu <mhiramat@kernel.org>, Nick Desaulniers <ndesaulniers@google.com>, Jann Horn <jannh@google.com>, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>, clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen <samitolvanen@google.com> Subject: [PATCH v11 01/12] add support for Clang's Shadow Call Stack (SCS) Date: Thu, 16 Apr 2020 09:12:34 -0700 [thread overview] Message-ID: <20200416161245.148813-2-samitolvanen@google.com> (raw) In-Reply-To: <20200416161245.148813-1-samitolvanen@google.com> This change adds generic support for Clang's Shadow Call Stack, which uses a shadow stack to protect return addresses from being overwritten by an attacker. Details are available here: https://clang.llvm.org/docs/ShadowCallStack.html Note that security guarantees in the kernel differ from the ones documented for user space. The kernel must store addresses of shadow stacks used by other tasks and interrupt handlers in memory, which means an attacker capable reading and writing arbitrary memory may be able to locate them and hijack control flow by modifying shadow stacks that are not currently in use. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> --- Makefile | 6 ++ arch/Kconfig | 34 ++++++ include/linux/compiler-clang.h | 6 ++ include/linux/compiler_types.h | 4 + include/linux/scs.h | 57 ++++++++++ init/init_task.c | 8 ++ kernel/Makefile | 1 + kernel/fork.c | 9 ++ kernel/sched/core.c | 2 + kernel/scs.c | 187 +++++++++++++++++++++++++++++++++ 10 files changed, 314 insertions(+) create mode 100644 include/linux/scs.h create mode 100644 kernel/scs.c diff --git a/Makefile b/Makefile index 70def4907036..baea6024b409 100644 --- a/Makefile +++ b/Makefile @@ -866,6 +866,12 @@ ifdef CONFIG_LIVEPATCH KBUILD_CFLAGS += $(call cc-option, -flive-patching=inline-clone) endif +ifdef CONFIG_SHADOW_CALL_STACK +CC_FLAGS_SCS := -fsanitize=shadow-call-stack +KBUILD_CFLAGS += $(CC_FLAGS_SCS) +export CC_FLAGS_SCS +endif + # arch Makefile may override CC so keep this after arch Makefile is included NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) diff --git a/arch/Kconfig b/arch/Kconfig index 786a85d4ad40..691a552c2cc3 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -533,6 +533,40 @@ config STACKPROTECTOR_STRONG about 20% of all kernel functions, which increases the kernel code size by about 2%. +config ARCH_SUPPORTS_SHADOW_CALL_STACK + bool + help + An architecture should select this if it supports Clang's Shadow + Call Stack, has asm/scs.h, and implements runtime support for shadow + stack switching. + +config SHADOW_CALL_STACK + bool "Clang Shadow Call Stack" + depends on ARCH_SUPPORTS_SHADOW_CALL_STACK + help + This option enables Clang's Shadow Call Stack, which uses a + shadow stack to protect function return addresses from being + overwritten by an attacker. More information can be found in + Clang's documentation: + + https://clang.llvm.org/docs/ShadowCallStack.html + + Note that security guarantees in the kernel differ from the ones + documented for user space. The kernel must store addresses of shadow + stacks used by other tasks and interrupt handlers in memory, which + means an attacker capable of reading and writing arbitrary memory + may be able to locate them and hijack control flow by modifying + shadow stacks that are not currently in use. + +config SHADOW_CALL_STACK_VMAP + bool "Use virtually mapped shadow call stacks" + depends on SHADOW_CALL_STACK + help + Use virtually mapped shadow call stacks. Selecting this option + provides better stack exhaustion protection, but increases per-thread + memory consumption as a full page is allocated for each shadow stack. + + config HAVE_ARCH_WITHIN_STACK_FRAMES bool help diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h index 333a6695a918..18fc4d29ef27 100644 --- a/include/linux/compiler-clang.h +++ b/include/linux/compiler-clang.h @@ -42,3 +42,9 @@ * compilers, like ICC. */ #define barrier() __asm__ __volatile__("" : : : "memory") + +#if __has_feature(shadow_call_stack) +# define __noscs __attribute__((__no_sanitize__("shadow-call-stack"))) +#else +# define __noscs +#endif diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index e970f97a7fcb..97b62f47a80d 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -193,6 +193,10 @@ struct ftrace_likely_data { # define randomized_struct_fields_end #endif +#ifndef __noscs +# define __noscs +#endif + #ifndef asm_volatile_goto #define asm_volatile_goto(x...) asm goto(x) #endif diff --git a/include/linux/scs.h b/include/linux/scs.h new file mode 100644 index 000000000000..c5572fd770b0 --- /dev/null +++ b/include/linux/scs.h @@ -0,0 +1,57 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Shadow Call Stack support. + * + * Copyright (C) 2019 Google LLC + */ + +#ifndef _LINUX_SCS_H +#define _LINUX_SCS_H + +#include <linux/gfp.h> +#include <linux/sched.h> +#include <asm/page.h> + +#ifdef CONFIG_SHADOW_CALL_STACK + +/* + * In testing, 1 KiB shadow stack size (i.e. 128 stack frames on a 64-bit + * architecture) provided ~40% safety margin on stack usage while keeping + * memory allocation overhead reasonable. + */ +#define SCS_SIZE 1024UL +#define GFP_SCS (GFP_KERNEL | __GFP_ZERO) + +/* + * A random number outside the kernel's virtual address space to mark the + * end of the shadow stack. + */ +#define SCS_END_MAGIC 0xaf0194819b1635f6UL + +#define task_scs(tsk) (task_thread_info(tsk)->shadow_call_stack) + +static inline void task_set_scs(struct task_struct *tsk, void *s) +{ + task_scs(tsk) = s; +} + +extern void scs_init(void); +extern void scs_task_reset(struct task_struct *tsk); +extern int scs_prepare(struct task_struct *tsk, int node); +extern bool scs_corrupted(struct task_struct *tsk); +extern void scs_release(struct task_struct *tsk); + +#else /* CONFIG_SHADOW_CALL_STACK */ + +#define task_scs(tsk) NULL + +static inline void task_set_scs(struct task_struct *tsk, void *s) {} +static inline void scs_init(void) {} +static inline void scs_task_reset(struct task_struct *tsk) {} +static inline int scs_prepare(struct task_struct *tsk, int node) { return 0; } +static inline bool scs_corrupted(struct task_struct *tsk) { return false; } +static inline void scs_release(struct task_struct *tsk) {} + +#endif /* CONFIG_SHADOW_CALL_STACK */ + +#endif /* _LINUX_SCS_H */ diff --git a/init/init_task.c b/init/init_task.c index bd403ed3e418..aaa71366d162 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -11,6 +11,7 @@ #include <linux/mm.h> #include <linux/audit.h> #include <linux/numa.h> +#include <linux/scs.h> #include <asm/pgtable.h> #include <linux/uaccess.h> @@ -185,6 +186,13 @@ struct task_struct init_task }; EXPORT_SYMBOL(init_task); +#ifdef CONFIG_SHADOW_CALL_STACK +unsigned long init_shadow_call_stack[SCS_SIZE / sizeof(long)] __init_task_data + __aligned(SCS_SIZE) = { + [(SCS_SIZE / sizeof(long)) - 1] = SCS_END_MAGIC +}; +#endif + /* * Initial thread structure. Alignment of this is handled by a special * linker map entry. diff --git a/kernel/Makefile b/kernel/Makefile index 4cb4130ced32..c332eb9d4841 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -103,6 +103,7 @@ obj-$(CONFIG_TRACEPOINTS) += trace/ obj-$(CONFIG_IRQ_WORK) += irq_work.o obj-$(CONFIG_CPU_PM) += cpu_pm.o obj-$(CONFIG_BPF) += bpf/ +obj-$(CONFIG_SHADOW_CALL_STACK) += scs.o obj-$(CONFIG_PERF_EVENTS) += events/ diff --git a/kernel/fork.c b/kernel/fork.c index 4385f3d639f2..c4c984d29573 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -94,6 +94,7 @@ #include <linux/thread_info.h> #include <linux/stackleak.h> #include <linux/kasan.h> +#include <linux/scs.h> #include <asm/pgtable.h> #include <asm/pgalloc.h> @@ -456,6 +457,8 @@ void put_task_stack(struct task_struct *tsk) void free_task(struct task_struct *tsk) { + scs_release(tsk); + #ifndef CONFIG_THREAD_INFO_IN_TASK /* * The task is finally done with both the stack and thread_info, @@ -840,6 +843,8 @@ void __init fork_init(void) NULL, free_vm_stack_cache); #endif + scs_init(); + lockdep_init_task(&init_task); uprobes_init(); } @@ -899,6 +904,10 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) if (err) goto free_stack; + err = scs_prepare(tsk, node); + if (err) + goto free_stack; + #ifdef CONFIG_SECCOMP /* * We must handle setting up seccomp filters once we're under diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 3a61a3b8eaa9..c99620c1ec20 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -11,6 +11,7 @@ #include <linux/nospec.h> #include <linux/kcov.h> +#include <linux/scs.h> #include <asm/switch_to.h> #include <asm/tlb.h> @@ -6045,6 +6046,7 @@ void init_idle(struct task_struct *idle, int cpu) idle->se.exec_start = sched_clock(); idle->flags |= PF_IDLE; + scs_task_reset(idle); kasan_unpoison_task_stack(idle); #ifdef CONFIG_SMP diff --git a/kernel/scs.c b/kernel/scs.c new file mode 100644 index 000000000000..28abed21950c --- /dev/null +++ b/kernel/scs.c @@ -0,0 +1,187 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Shadow Call Stack support. + * + * Copyright (C) 2019 Google LLC + */ + +#include <linux/cpuhotplug.h> +#include <linux/kasan.h> +#include <linux/mm.h> +#include <linux/mmzone.h> +#include <linux/scs.h> +#include <linux/slab.h> +#include <linux/vmalloc.h> +#include <asm/scs.h> + +static inline void *__scs_base(struct task_struct *tsk) +{ + /* + * To minimize risk the of exposure, architectures may clear a + * task's thread_info::shadow_call_stack while that task is + * running, and only save/restore the active shadow call stack + * pointer when the usual register may be clobbered (e.g. across + * context switches). + * + * The shadow call stack is aligned to SCS_SIZE, and grows + * upwards, so we can mask out the low bits to extract the base + * when the task is not running. + */ + return (void *)((unsigned long)task_scs(tsk) & ~(SCS_SIZE - 1)); +} + +static inline unsigned long *scs_magic(void *s) +{ + return (unsigned long *)(s + SCS_SIZE) - 1; +} + +static inline void scs_set_magic(void *s) +{ + *scs_magic(s) = SCS_END_MAGIC; +} + +#ifdef CONFIG_SHADOW_CALL_STACK_VMAP + +/* Matches NR_CACHED_STACKS for VMAP_STACK */ +#define NR_CACHED_SCS 2 +static DEFINE_PER_CPU(void *, scs_cache[NR_CACHED_SCS]); + +static void *scs_alloc(int node) +{ + int i; + void *s; + + for (i = 0; i < NR_CACHED_SCS; i++) { + s = this_cpu_xchg(scs_cache[i], NULL); + if (s) { + memset(s, 0, SCS_SIZE); + goto out; + } + } + + /* + * We allocate a full page for the shadow stack, which should be + * more than we need. Check the assumption nevertheless. + */ + BUILD_BUG_ON(SCS_SIZE > PAGE_SIZE); + + s = __vmalloc_node_range(PAGE_SIZE, SCS_SIZE, + VMALLOC_START, VMALLOC_END, + GFP_SCS, PAGE_KERNEL, 0, + node, __builtin_return_address(0)); + +out: + if (s) + scs_set_magic(s); + /* TODO: poison for KASAN, unpoison in scs_free */ + + return s; +} + +static void scs_free(void *s) +{ + int i; + + for (i = 0; i < NR_CACHED_SCS; i++) + if (this_cpu_cmpxchg(scs_cache[i], 0, s) == NULL) + return; + + vfree_atomic(s); +} + +static int scs_cleanup(unsigned int cpu) +{ + int i; + void **cache = per_cpu_ptr(scs_cache, cpu); + + for (i = 0; i < NR_CACHED_SCS; i++) { + vfree(cache[i]); + cache[i] = NULL; + } + + return 0; +} + +void __init scs_init(void) +{ + WARN_ON(cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "scs:scs_cache", NULL, + scs_cleanup) < 0); +} + +#else /* !CONFIG_SHADOW_CALL_STACK_VMAP */ + +static struct kmem_cache *scs_cache; + +static inline void *scs_alloc(int node) +{ + void *s; + + s = kmem_cache_alloc_node(scs_cache, GFP_SCS, node); + if (s) { + scs_set_magic(s); + /* + * Poison the allocation to catch unintentional accesses to + * the shadow stack when KASAN is enabled. + */ + kasan_poison_object_data(scs_cache, s); + } + + return s; +} + +static inline void scs_free(void *s) +{ + kasan_unpoison_object_data(scs_cache, s); + kmem_cache_free(scs_cache, s); +} + +void __init scs_init(void) +{ + scs_cache = kmem_cache_create("scs_cache", SCS_SIZE, SCS_SIZE, + 0, NULL); + WARN_ON(!scs_cache); +} + +#endif /* CONFIG_SHADOW_CALL_STACK_VMAP */ + +void scs_task_reset(struct task_struct *tsk) +{ + /* + * Reset the shadow stack to the base address in case the task + * is reused. + */ + task_set_scs(tsk, __scs_base(tsk)); +} + +int scs_prepare(struct task_struct *tsk, int node) +{ + void *s; + + s = scs_alloc(node); + if (!s) + return -ENOMEM; + + task_set_scs(tsk, s); + return 0; +} + +bool scs_corrupted(struct task_struct *tsk) +{ + unsigned long *magic = scs_magic(__scs_base(tsk)); + + return READ_ONCE_NOCHECK(*magic) != SCS_END_MAGIC; +} + +void scs_release(struct task_struct *tsk) +{ + void *s; + + s = __scs_base(tsk); + if (!s) + return; + + WARN_ON(scs_corrupted(tsk)); + + task_set_scs(tsk, NULL); + scs_free(s); +} -- 2.26.1.301.g55bc3eb7cb9-goog
WARNING: multiple messages have this Message-ID (diff)
From: Sami Tolvanen <samitolvanen@google.com> To: Will Deacon <will@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, James Morse <james.morse@arm.com>, Steven Rostedt <rostedt@goodmis.org>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Mark Rutland <mark.rutland@arm.com>, Masahiro Yamada <masahiroy@kernel.org>, Michal Marek <michal.lkml@markovi.net>, Ingo Molnar <mingo@redhat.com>, Peter Zijlstra <peterz@infradead.org>, Juri Lelli <juri.lelli@redhat.com>, Vincent Guittot <vincent.guittot@linaro.org> Cc: Kees Cook <keescook@chromium.org>, Jann Horn <jannh@google.com>, Marc Zyngier <maz@kernel.org>, kernel-hardening@lists.openwall.com, Nick Desaulniers <ndesaulniers@google.com>, linux-kernel@vger.kernel.org, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>, Masami Hiramatsu <mhiramat@kernel.org>, Sami Tolvanen <samitolvanen@google.com>, clang-built-linux@googlegroups.com, Laura Abbott <labbott@redhat.com>, Dave Martin <Dave.Martin@arm.com>, linux-arm-kernel@lists.infradead.org Subject: [PATCH v11 01/12] add support for Clang's Shadow Call Stack (SCS) Date: Thu, 16 Apr 2020 09:12:34 -0700 [thread overview] Message-ID: <20200416161245.148813-2-samitolvanen@google.com> (raw) In-Reply-To: <20200416161245.148813-1-samitolvanen@google.com> This change adds generic support for Clang's Shadow Call Stack, which uses a shadow stack to protect return addresses from being overwritten by an attacker. Details are available here: https://clang.llvm.org/docs/ShadowCallStack.html Note that security guarantees in the kernel differ from the ones documented for user space. The kernel must store addresses of shadow stacks used by other tasks and interrupt handlers in memory, which means an attacker capable reading and writing arbitrary memory may be able to locate them and hijack control flow by modifying shadow stacks that are not currently in use. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> --- Makefile | 6 ++ arch/Kconfig | 34 ++++++ include/linux/compiler-clang.h | 6 ++ include/linux/compiler_types.h | 4 + include/linux/scs.h | 57 ++++++++++ init/init_task.c | 8 ++ kernel/Makefile | 1 + kernel/fork.c | 9 ++ kernel/sched/core.c | 2 + kernel/scs.c | 187 +++++++++++++++++++++++++++++++++ 10 files changed, 314 insertions(+) create mode 100644 include/linux/scs.h create mode 100644 kernel/scs.c diff --git a/Makefile b/Makefile index 70def4907036..baea6024b409 100644 --- a/Makefile +++ b/Makefile @@ -866,6 +866,12 @@ ifdef CONFIG_LIVEPATCH KBUILD_CFLAGS += $(call cc-option, -flive-patching=inline-clone) endif +ifdef CONFIG_SHADOW_CALL_STACK +CC_FLAGS_SCS := -fsanitize=shadow-call-stack +KBUILD_CFLAGS += $(CC_FLAGS_SCS) +export CC_FLAGS_SCS +endif + # arch Makefile may override CC so keep this after arch Makefile is included NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) diff --git a/arch/Kconfig b/arch/Kconfig index 786a85d4ad40..691a552c2cc3 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -533,6 +533,40 @@ config STACKPROTECTOR_STRONG about 20% of all kernel functions, which increases the kernel code size by about 2%. +config ARCH_SUPPORTS_SHADOW_CALL_STACK + bool + help + An architecture should select this if it supports Clang's Shadow + Call Stack, has asm/scs.h, and implements runtime support for shadow + stack switching. + +config SHADOW_CALL_STACK + bool "Clang Shadow Call Stack" + depends on ARCH_SUPPORTS_SHADOW_CALL_STACK + help + This option enables Clang's Shadow Call Stack, which uses a + shadow stack to protect function return addresses from being + overwritten by an attacker. More information can be found in + Clang's documentation: + + https://clang.llvm.org/docs/ShadowCallStack.html + + Note that security guarantees in the kernel differ from the ones + documented for user space. The kernel must store addresses of shadow + stacks used by other tasks and interrupt handlers in memory, which + means an attacker capable of reading and writing arbitrary memory + may be able to locate them and hijack control flow by modifying + shadow stacks that are not currently in use. + +config SHADOW_CALL_STACK_VMAP + bool "Use virtually mapped shadow call stacks" + depends on SHADOW_CALL_STACK + help + Use virtually mapped shadow call stacks. Selecting this option + provides better stack exhaustion protection, but increases per-thread + memory consumption as a full page is allocated for each shadow stack. + + config HAVE_ARCH_WITHIN_STACK_FRAMES bool help diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h index 333a6695a918..18fc4d29ef27 100644 --- a/include/linux/compiler-clang.h +++ b/include/linux/compiler-clang.h @@ -42,3 +42,9 @@ * compilers, like ICC. */ #define barrier() __asm__ __volatile__("" : : : "memory") + +#if __has_feature(shadow_call_stack) +# define __noscs __attribute__((__no_sanitize__("shadow-call-stack"))) +#else +# define __noscs +#endif diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index e970f97a7fcb..97b62f47a80d 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -193,6 +193,10 @@ struct ftrace_likely_data { # define randomized_struct_fields_end #endif +#ifndef __noscs +# define __noscs +#endif + #ifndef asm_volatile_goto #define asm_volatile_goto(x...) asm goto(x) #endif diff --git a/include/linux/scs.h b/include/linux/scs.h new file mode 100644 index 000000000000..c5572fd770b0 --- /dev/null +++ b/include/linux/scs.h @@ -0,0 +1,57 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Shadow Call Stack support. + * + * Copyright (C) 2019 Google LLC + */ + +#ifndef _LINUX_SCS_H +#define _LINUX_SCS_H + +#include <linux/gfp.h> +#include <linux/sched.h> +#include <asm/page.h> + +#ifdef CONFIG_SHADOW_CALL_STACK + +/* + * In testing, 1 KiB shadow stack size (i.e. 128 stack frames on a 64-bit + * architecture) provided ~40% safety margin on stack usage while keeping + * memory allocation overhead reasonable. + */ +#define SCS_SIZE 1024UL +#define GFP_SCS (GFP_KERNEL | __GFP_ZERO) + +/* + * A random number outside the kernel's virtual address space to mark the + * end of the shadow stack. + */ +#define SCS_END_MAGIC 0xaf0194819b1635f6UL + +#define task_scs(tsk) (task_thread_info(tsk)->shadow_call_stack) + +static inline void task_set_scs(struct task_struct *tsk, void *s) +{ + task_scs(tsk) = s; +} + +extern void scs_init(void); +extern void scs_task_reset(struct task_struct *tsk); +extern int scs_prepare(struct task_struct *tsk, int node); +extern bool scs_corrupted(struct task_struct *tsk); +extern void scs_release(struct task_struct *tsk); + +#else /* CONFIG_SHADOW_CALL_STACK */ + +#define task_scs(tsk) NULL + +static inline void task_set_scs(struct task_struct *tsk, void *s) {} +static inline void scs_init(void) {} +static inline void scs_task_reset(struct task_struct *tsk) {} +static inline int scs_prepare(struct task_struct *tsk, int node) { return 0; } +static inline bool scs_corrupted(struct task_struct *tsk) { return false; } +static inline void scs_release(struct task_struct *tsk) {} + +#endif /* CONFIG_SHADOW_CALL_STACK */ + +#endif /* _LINUX_SCS_H */ diff --git a/init/init_task.c b/init/init_task.c index bd403ed3e418..aaa71366d162 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -11,6 +11,7 @@ #include <linux/mm.h> #include <linux/audit.h> #include <linux/numa.h> +#include <linux/scs.h> #include <asm/pgtable.h> #include <linux/uaccess.h> @@ -185,6 +186,13 @@ struct task_struct init_task }; EXPORT_SYMBOL(init_task); +#ifdef CONFIG_SHADOW_CALL_STACK +unsigned long init_shadow_call_stack[SCS_SIZE / sizeof(long)] __init_task_data + __aligned(SCS_SIZE) = { + [(SCS_SIZE / sizeof(long)) - 1] = SCS_END_MAGIC +}; +#endif + /* * Initial thread structure. Alignment of this is handled by a special * linker map entry. diff --git a/kernel/Makefile b/kernel/Makefile index 4cb4130ced32..c332eb9d4841 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -103,6 +103,7 @@ obj-$(CONFIG_TRACEPOINTS) += trace/ obj-$(CONFIG_IRQ_WORK) += irq_work.o obj-$(CONFIG_CPU_PM) += cpu_pm.o obj-$(CONFIG_BPF) += bpf/ +obj-$(CONFIG_SHADOW_CALL_STACK) += scs.o obj-$(CONFIG_PERF_EVENTS) += events/ diff --git a/kernel/fork.c b/kernel/fork.c index 4385f3d639f2..c4c984d29573 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -94,6 +94,7 @@ #include <linux/thread_info.h> #include <linux/stackleak.h> #include <linux/kasan.h> +#include <linux/scs.h> #include <asm/pgtable.h> #include <asm/pgalloc.h> @@ -456,6 +457,8 @@ void put_task_stack(struct task_struct *tsk) void free_task(struct task_struct *tsk) { + scs_release(tsk); + #ifndef CONFIG_THREAD_INFO_IN_TASK /* * The task is finally done with both the stack and thread_info, @@ -840,6 +843,8 @@ void __init fork_init(void) NULL, free_vm_stack_cache); #endif + scs_init(); + lockdep_init_task(&init_task); uprobes_init(); } @@ -899,6 +904,10 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) if (err) goto free_stack; + err = scs_prepare(tsk, node); + if (err) + goto free_stack; + #ifdef CONFIG_SECCOMP /* * We must handle setting up seccomp filters once we're under diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 3a61a3b8eaa9..c99620c1ec20 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -11,6 +11,7 @@ #include <linux/nospec.h> #include <linux/kcov.h> +#include <linux/scs.h> #include <asm/switch_to.h> #include <asm/tlb.h> @@ -6045,6 +6046,7 @@ void init_idle(struct task_struct *idle, int cpu) idle->se.exec_start = sched_clock(); idle->flags |= PF_IDLE; + scs_task_reset(idle); kasan_unpoison_task_stack(idle); #ifdef CONFIG_SMP diff --git a/kernel/scs.c b/kernel/scs.c new file mode 100644 index 000000000000..28abed21950c --- /dev/null +++ b/kernel/scs.c @@ -0,0 +1,187 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Shadow Call Stack support. + * + * Copyright (C) 2019 Google LLC + */ + +#include <linux/cpuhotplug.h> +#include <linux/kasan.h> +#include <linux/mm.h> +#include <linux/mmzone.h> +#include <linux/scs.h> +#include <linux/slab.h> +#include <linux/vmalloc.h> +#include <asm/scs.h> + +static inline void *__scs_base(struct task_struct *tsk) +{ + /* + * To minimize risk the of exposure, architectures may clear a + * task's thread_info::shadow_call_stack while that task is + * running, and only save/restore the active shadow call stack + * pointer when the usual register may be clobbered (e.g. across + * context switches). + * + * The shadow call stack is aligned to SCS_SIZE, and grows + * upwards, so we can mask out the low bits to extract the base + * when the task is not running. + */ + return (void *)((unsigned long)task_scs(tsk) & ~(SCS_SIZE - 1)); +} + +static inline unsigned long *scs_magic(void *s) +{ + return (unsigned long *)(s + SCS_SIZE) - 1; +} + +static inline void scs_set_magic(void *s) +{ + *scs_magic(s) = SCS_END_MAGIC; +} + +#ifdef CONFIG_SHADOW_CALL_STACK_VMAP + +/* Matches NR_CACHED_STACKS for VMAP_STACK */ +#define NR_CACHED_SCS 2 +static DEFINE_PER_CPU(void *, scs_cache[NR_CACHED_SCS]); + +static void *scs_alloc(int node) +{ + int i; + void *s; + + for (i = 0; i < NR_CACHED_SCS; i++) { + s = this_cpu_xchg(scs_cache[i], NULL); + if (s) { + memset(s, 0, SCS_SIZE); + goto out; + } + } + + /* + * We allocate a full page for the shadow stack, which should be + * more than we need. Check the assumption nevertheless. + */ + BUILD_BUG_ON(SCS_SIZE > PAGE_SIZE); + + s = __vmalloc_node_range(PAGE_SIZE, SCS_SIZE, + VMALLOC_START, VMALLOC_END, + GFP_SCS, PAGE_KERNEL, 0, + node, __builtin_return_address(0)); + +out: + if (s) + scs_set_magic(s); + /* TODO: poison for KASAN, unpoison in scs_free */ + + return s; +} + +static void scs_free(void *s) +{ + int i; + + for (i = 0; i < NR_CACHED_SCS; i++) + if (this_cpu_cmpxchg(scs_cache[i], 0, s) == NULL) + return; + + vfree_atomic(s); +} + +static int scs_cleanup(unsigned int cpu) +{ + int i; + void **cache = per_cpu_ptr(scs_cache, cpu); + + for (i = 0; i < NR_CACHED_SCS; i++) { + vfree(cache[i]); + cache[i] = NULL; + } + + return 0; +} + +void __init scs_init(void) +{ + WARN_ON(cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "scs:scs_cache", NULL, + scs_cleanup) < 0); +} + +#else /* !CONFIG_SHADOW_CALL_STACK_VMAP */ + +static struct kmem_cache *scs_cache; + +static inline void *scs_alloc(int node) +{ + void *s; + + s = kmem_cache_alloc_node(scs_cache, GFP_SCS, node); + if (s) { + scs_set_magic(s); + /* + * Poison the allocation to catch unintentional accesses to + * the shadow stack when KASAN is enabled. + */ + kasan_poison_object_data(scs_cache, s); + } + + return s; +} + +static inline void scs_free(void *s) +{ + kasan_unpoison_object_data(scs_cache, s); + kmem_cache_free(scs_cache, s); +} + +void __init scs_init(void) +{ + scs_cache = kmem_cache_create("scs_cache", SCS_SIZE, SCS_SIZE, + 0, NULL); + WARN_ON(!scs_cache); +} + +#endif /* CONFIG_SHADOW_CALL_STACK_VMAP */ + +void scs_task_reset(struct task_struct *tsk) +{ + /* + * Reset the shadow stack to the base address in case the task + * is reused. + */ + task_set_scs(tsk, __scs_base(tsk)); +} + +int scs_prepare(struct task_struct *tsk, int node) +{ + void *s; + + s = scs_alloc(node); + if (!s) + return -ENOMEM; + + task_set_scs(tsk, s); + return 0; +} + +bool scs_corrupted(struct task_struct *tsk) +{ + unsigned long *magic = scs_magic(__scs_base(tsk)); + + return READ_ONCE_NOCHECK(*magic) != SCS_END_MAGIC; +} + +void scs_release(struct task_struct *tsk) +{ + void *s; + + s = __scs_base(tsk); + if (!s) + return; + + WARN_ON(scs_corrupted(tsk)); + + task_set_scs(tsk, NULL); + scs_free(s); +} -- 2.26.1.301.g55bc3eb7cb9-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-04-16 16:13 UTC|newest] Thread overview: 1147+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-18 16:10 [PATCH 00/18] add support for Clang's Shadow Call Stack Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 01/18] arm64: mm: don't use x18 in idmap_kpti_install_ng_mappings Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:43 ` Nick Desaulniers 2019-10-18 16:43 ` Nick Desaulniers 2019-10-18 16:43 ` Nick Desaulniers 2019-10-18 16:10 ` [PATCH 02/18] arm64/lib: copy_page: avoid x18 register in assembler code Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 03/18] arm64: kvm: stop treating register x18 as caller save Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-21 6:19 ` Ard Biesheuvel 2019-10-21 6:19 ` Ard Biesheuvel 2019-10-21 6:19 ` Ard Biesheuvel 2019-10-22 17:22 ` Marc Zyngier 2019-10-22 17:22 ` Marc Zyngier 2019-10-22 21:45 ` Sami Tolvanen 2019-10-22 21:45 ` Sami Tolvanen 2019-10-22 21:45 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 04/18] arm64: kernel: avoid x18 as an arbitrary temp register Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 05/18] arm64: kbuild: reserve reg x18 from general allocation by the compiler Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 17:32 ` Nick Desaulniers 2019-10-18 17:32 ` Nick Desaulniers 2019-10-18 17:32 ` Nick Desaulniers 2019-10-18 19:00 ` Sami Tolvanen 2019-10-18 19:00 ` Sami Tolvanen 2019-10-18 19:00 ` Sami Tolvanen 2019-10-21 6:12 ` Ard Biesheuvel 2019-10-21 6:12 ` Ard Biesheuvel 2019-10-21 6:12 ` Ard Biesheuvel 2019-10-21 20:43 ` Sami Tolvanen 2019-10-21 20:43 ` Sami Tolvanen 2019-10-21 20:43 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 06/18] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:58 ` Joe Perches 2019-10-18 16:58 ` Joe Perches 2019-10-18 16:58 ` Joe Perches 2019-10-18 17:08 ` Nick Desaulniers 2019-10-18 17:08 ` Nick Desaulniers 2019-10-18 17:08 ` Nick Desaulniers 2019-10-18 17:11 ` Sami Tolvanen 2019-10-18 17:11 ` Sami Tolvanen 2019-10-18 17:11 ` Sami Tolvanen 2019-10-18 18:32 ` Miguel Ojeda 2019-10-18 18:32 ` Miguel Ojeda 2019-10-18 18:32 ` Miguel Ojeda 2019-10-18 20:33 ` Nick Desaulniers 2019-10-18 20:33 ` Nick Desaulniers 2019-10-18 20:33 ` Nick Desaulniers 2019-10-19 0:21 ` Miguel Ojeda 2019-10-19 0:21 ` Miguel Ojeda 2019-10-19 0:21 ` Miguel Ojeda 2019-10-18 17:42 ` Jann Horn 2019-10-18 17:42 ` Jann Horn 2019-10-18 17:42 ` Jann Horn 2019-10-18 17:56 ` Sami Tolvanen 2019-10-18 17:56 ` Sami Tolvanen 2019-10-18 17:56 ` Sami Tolvanen 2019-10-22 16:28 ` Mark Rutland 2019-10-22 16:28 ` Mark Rutland 2019-10-22 16:30 ` Kees Cook 2019-10-22 16:30 ` Kees Cook 2019-10-22 16:49 ` Mark Rutland 2019-10-22 16:49 ` Mark Rutland 2019-10-22 19:26 ` Sami Tolvanen 2019-10-22 19:26 ` Sami Tolvanen 2019-10-22 19:26 ` Sami Tolvanen 2019-10-24 13:28 ` Mark Rutland 2019-10-24 13:28 ` Mark Rutland 2019-10-24 14:38 ` Masahiro Yamada 2019-10-24 14:38 ` Masahiro Yamada 2019-10-23 16:59 ` Sami Tolvanen 2019-10-23 16:59 ` Sami Tolvanen 2019-10-23 16:59 ` Sami Tolvanen 2019-10-24 1:47 ` Masahiro Yamada 2019-10-24 1:47 ` Masahiro Yamada 2019-10-24 12:04 ` Steven Rostedt 2019-10-24 12:04 ` Steven Rostedt 2019-10-24 22:17 ` Sami Tolvanen 2019-10-24 22:17 ` Sami Tolvanen 2019-10-24 22:17 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 07/18] scs: add accounting Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 08/18] scs: add support for stack usage debugging Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 09/18] trace: disable function graph tracing with SCS Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 17:01 ` Steven Rostedt 2019-10-18 17:01 ` Steven Rostedt 2019-10-18 17:08 ` Sami Tolvanen 2019-10-18 17:08 ` Sami Tolvanen 2019-10-18 17:08 ` Sami Tolvanen 2019-10-21 6:15 ` Ard Biesheuvel 2019-10-21 6:15 ` Ard Biesheuvel 2019-10-21 6:15 ` Ard Biesheuvel 2019-10-18 16:10 ` [PATCH 10/18] kprobes: fix compilation without CONFIG_KRETPROBES Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 17:02 ` Steven Rostedt 2019-10-18 17:02 ` Steven Rostedt 2019-10-21 9:13 ` Masami Hiramatsu 2019-10-21 9:13 ` Masami Hiramatsu 2019-10-18 16:10 ` [PATCH 11/18] kprobes: disable kretprobes with SCS Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 17:04 ` Steven Rostedt 2019-10-18 17:04 ` Steven Rostedt 2019-10-21 9:15 ` Masami Hiramatsu 2019-10-21 9:15 ` Masami Hiramatsu 2019-10-18 16:10 ` [PATCH 12/18] arm64: reserve x18 only with Shadow Call Stack Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 21:23 ` Nick Desaulniers 2019-10-18 21:23 ` Nick Desaulniers 2019-10-18 21:23 ` Nick Desaulniers 2019-10-22 16:00 ` Mark Rutland 2019-10-22 16:00 ` Mark Rutland 2019-10-22 16:27 ` Kees Cook 2019-10-22 16:27 ` Kees Cook 2019-10-18 16:10 ` [PATCH 13/18] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:49 ` Nick Desaulniers 2019-10-18 16:49 ` Nick Desaulniers 2019-10-18 16:49 ` Nick Desaulniers 2019-10-18 17:05 ` Sami Tolvanen 2019-10-18 17:05 ` Sami Tolvanen 2019-10-18 17:05 ` Sami Tolvanen 2019-10-21 16:56 ` Mark Rutland 2019-10-21 16:56 ` Mark Rutland 2019-10-21 22:43 ` Sami Tolvanen 2019-10-21 22:43 ` Sami Tolvanen 2019-10-21 22:43 ` Sami Tolvanen 2019-10-22 15:47 ` Mark Rutland 2019-10-22 15:47 ` Mark Rutland 2019-10-18 16:10 ` [PATCH 14/18] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-21 6:20 ` Ard Biesheuvel 2019-10-21 6:20 ` Ard Biesheuvel 2019-10-21 6:20 ` Ard Biesheuvel 2019-10-21 22:39 ` Sami Tolvanen 2019-10-21 22:39 ` Sami Tolvanen 2019-10-21 22:39 ` Sami Tolvanen 2019-10-22 5:54 ` Ard Biesheuvel 2019-10-22 5:54 ` Ard Biesheuvel 2019-10-22 5:54 ` Ard Biesheuvel 2019-10-18 16:10 ` [PATCH 15/18] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 16/18] arm64: kprobes: fix kprobes without CONFIG_KRETPROBES Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-21 6:21 ` Ard Biesheuvel 2019-10-21 6:21 ` Ard Biesheuvel 2019-10-21 6:21 ` Ard Biesheuvel 2019-10-21 16:06 ` Kees Cook 2019-10-21 16:06 ` Kees Cook 2019-10-18 16:10 ` [PATCH 17/18] arm64: disable SCS for hypervisor code Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` [PATCH 18/18] arm64: implement Shadow Call Stack Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 16:10 ` Sami Tolvanen 2019-10-18 17:12 ` Jann Horn 2019-10-18 17:12 ` Jann Horn 2019-10-18 17:12 ` Jann Horn 2019-10-18 17:18 ` Sami Tolvanen 2019-10-18 17:18 ` Sami Tolvanen 2019-10-18 17:18 ` Sami Tolvanen 2019-10-18 17:23 ` Mark Rutland 2019-10-18 17:23 ` Mark Rutland 2019-10-18 17:35 ` Sami Tolvanen 2019-10-18 17:35 ` Sami Tolvanen 2019-10-18 17:35 ` Sami Tolvanen 2019-10-21 16:49 ` Mark Rutland 2019-10-21 16:49 ` Mark Rutland 2019-10-21 9:28 ` [PATCH 00/18] add support for Clang's " Masami Hiramatsu 2019-10-21 9:28 ` Masami Hiramatsu 2019-10-24 22:51 ` [PATCH v2 00/17] " samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 01/17] arm64: mm: don't use x18 in idmap_kpti_install_ng_mappings samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-25 9:24 ` Mark Rutland 2019-10-25 9:24 ` Mark Rutland 2019-10-24 22:51 ` [PATCH v2 02/17] arm64/lib: copy_page: avoid x18 register in assembler code samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-25 9:41 ` Mark Rutland 2019-10-25 9:41 ` Mark Rutland 2019-10-25 21:40 ` Sami Tolvanen 2019-10-25 21:40 ` Sami Tolvanen 2019-10-25 21:40 ` Sami Tolvanen 2019-10-24 22:51 ` [PATCH v2 03/17] arm64: kvm: stop treating register x18 as caller save samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 04/17] arm64: kernel: avoid x18 as an arbitrary temp register samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-25 10:02 ` Mark Rutland 2019-10-25 10:02 ` Mark Rutland 2019-10-24 22:51 ` [PATCH v2 05/17] add support for Clang's Shadow Call Stack (SCS) samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-25 10:56 ` Mark Rutland 2019-10-25 10:56 ` Mark Rutland 2019-10-25 20:49 ` Sami Tolvanen 2019-10-25 20:49 ` Sami Tolvanen 2019-10-25 20:49 ` Sami Tolvanen 2019-10-28 16:35 ` Mark Rutland 2019-10-28 16:35 ` Mark Rutland 2019-10-28 19:57 ` Kees Cook 2019-10-28 19:57 ` Kees Cook 2019-10-29 18:06 ` Sami Tolvanen 2019-10-29 18:06 ` Sami Tolvanen 2019-10-29 18:06 ` Sami Tolvanen 2019-10-25 16:22 ` Nick Desaulniers 2019-10-25 16:22 ` Nick Desaulniers 2019-10-25 16:22 ` Nick Desaulniers 2019-10-25 20:51 ` Sami Tolvanen 2019-10-25 20:51 ` Sami Tolvanen 2019-10-25 20:51 ` Sami Tolvanen 2019-10-26 15:57 ` Joe Perches 2019-10-26 15:57 ` Joe Perches 2019-10-26 15:57 ` Joe Perches 2019-10-28 15:19 ` Sami Tolvanen 2019-10-28 15:19 ` Sami Tolvanen 2019-10-28 15:19 ` Sami Tolvanen 2019-10-28 15:31 ` Miguel Ojeda 2019-10-28 16:15 ` Sami Tolvanen 2019-10-28 16:15 ` Sami Tolvanen 2019-10-28 16:15 ` Sami Tolvanen 2019-10-24 22:51 ` [PATCH v2 06/17] scs: add accounting samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 07/17] scs: add support for stack usage debugging samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 08/17] kprobes: fix compilation without CONFIG_KRETPROBES samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 09/17] arm64: disable function graph tracing with SCS samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-25 11:03 ` Mark Rutland 2019-10-25 11:03 ` Mark Rutland 2019-10-29 17:45 ` Sami Tolvanen 2019-10-29 17:45 ` Sami Tolvanen 2019-10-29 17:45 ` Sami Tolvanen 2019-10-29 20:35 ` Nick Desaulniers 2019-10-29 20:35 ` Nick Desaulniers 2019-10-29 20:35 ` Nick Desaulniers 2019-10-24 22:51 ` [PATCH v2 10/17] arm64: disable kretprobes " samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 11/17] arm64: reserve x18 from general allocation " samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 12/17] arm64: preserve x18 when CPU is suspended samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 13/17] arm64: efi: restore x18 if it was corrupted samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 14/17] arm64: vdso: disable Shadow Call Stack samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 15/17] arm64: kprobes: fix kprobes without CONFIG_KRETPROBES samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` [PATCH v2 16/17] arm64: disable SCS for hypervisor code samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-25 1:20 ` Steven Rostedt 2019-10-25 1:20 ` Steven Rostedt 2019-10-25 1:29 ` Masahiro Yamada 2019-10-25 1:29 ` Masahiro Yamada 2019-10-25 1:42 ` Steven Rostedt 2019-10-25 1:42 ` Steven Rostedt 2019-10-25 19:24 ` Sami Tolvanen 2019-10-25 19:24 ` Sami Tolvanen 2019-10-25 19:24 ` Sami Tolvanen 2019-10-24 22:51 ` [PATCH v2 17/17] arm64: implement Shadow Call Stack samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-24 22:51 ` samitolvanen 2019-10-31 16:46 ` [PATCH v3 00/17] add support for Clang's " samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` [PATCH v3 01/17] arm64: mm: avoid x18 in idmap_kpti_install_ng_mappings samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` [PATCH v3 02/17] arm64/lib: copy_page: avoid x18 register in assembler code samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` [PATCH v3 03/17] arm64: kvm: stop treating register x18 as caller save samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:48 ` Kees Cook 2019-11-01 3:48 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 04/17] arm64: kernel: avoid x18 __cpu_soft_restart samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:47 ` Kees Cook 2019-11-01 3:47 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 05/17] add support for Clang's Shadow Call Stack (SCS) samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:51 ` Kees Cook 2019-11-01 3:51 ` Kees Cook 2019-11-01 16:28 ` Sami Tolvanen 2019-11-01 16:28 ` Sami Tolvanen 2019-11-01 16:28 ` Sami Tolvanen 2019-10-31 16:46 ` [PATCH v3 06/17] scs: add accounting samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:52 ` Kees Cook 2019-11-01 3:52 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 07/17] scs: add support for stack usage debugging samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:55 ` Kees Cook 2019-11-01 3:55 ` Kees Cook 2019-11-01 16:32 ` Sami Tolvanen 2019-11-01 16:32 ` Sami Tolvanen 2019-11-01 16:32 ` Sami Tolvanen 2019-11-01 19:02 ` Kees Cook 2019-11-01 19:02 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 08/17] kprobes: fix compilation without CONFIG_KRETPROBES samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:55 ` Kees Cook 2019-11-01 3:55 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 09/17] arm64: kprobes: fix kprobes " samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:56 ` Kees Cook 2019-11-01 3:56 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 10/17] arm64: disable kretprobes with SCS samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:56 ` Kees Cook 2019-11-01 3:56 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 11/17] arm64: disable function graph tracing " samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:58 ` Kees Cook 2019-11-01 3:58 ` Kees Cook 2019-11-01 20:32 ` Sami Tolvanen 2019-11-01 20:32 ` Sami Tolvanen 2019-11-01 20:32 ` Sami Tolvanen 2019-10-31 16:46 ` [PATCH v3 12/17] arm64: reserve x18 from general allocation " samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 17:11 ` Nick Desaulniers 2019-10-31 17:11 ` Nick Desaulniers 2019-10-31 17:11 ` Nick Desaulniers 2019-11-01 3:59 ` Kees Cook 2019-11-01 3:59 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 13/17] arm64: preserve x18 when CPU is suspended samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 17:18 ` Nick Desaulniers 2019-10-31 17:18 ` Nick Desaulniers 2019-10-31 17:18 ` Nick Desaulniers 2019-10-31 17:27 ` Sami Tolvanen 2019-10-31 17:27 ` Sami Tolvanen 2019-10-31 17:27 ` Sami Tolvanen 2019-10-31 17:34 ` Nick Desaulniers 2019-10-31 17:34 ` Nick Desaulniers 2019-10-31 17:34 ` Nick Desaulniers 2019-10-31 17:42 ` Sami Tolvanen 2019-10-31 17:42 ` Sami Tolvanen 2019-10-31 17:42 ` Sami Tolvanen 2019-11-01 3:59 ` Kees Cook 2019-11-01 3:59 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 14/17] arm64: efi: restore x18 if it was corrupted samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 4:00 ` Kees Cook 2019-11-01 4:00 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 15/17] arm64: vdso: disable Shadow Call Stack samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 17:28 ` Nick Desaulniers 2019-10-31 17:28 ` Nick Desaulniers 2019-10-31 17:28 ` Nick Desaulniers 2019-11-01 4:01 ` Kees Cook 2019-11-01 4:01 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 16/17] arm64: disable SCS for hypervisor code samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:46 ` Kees Cook 2019-11-01 3:46 ` Kees Cook 2019-11-01 4:02 ` Kees Cook 2019-11-01 4:02 ` Kees Cook 2019-10-31 16:46 ` [PATCH v3 17/17] arm64: implement Shadow Call Stack samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-10-31 16:46 ` samitolvanen 2019-11-01 3:45 ` Kees Cook 2019-11-01 3:45 ` Kees Cook 2019-11-01 15:44 ` Sami Tolvanen 2019-11-01 15:44 ` Sami Tolvanen 2019-11-01 15:44 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 00/17] add support for Clang's " Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 01/17] arm64: mm: avoid x18 in idmap_kpti_install_ng_mappings Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 02/17] arm64/lib: copy_page: avoid x18 register in assembler code Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 03/17] arm64: kvm: stop treating register x18 as caller save Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-04 11:04 ` Marc Zyngier 2019-11-04 11:04 ` Marc Zyngier 2019-11-04 13:30 ` Marc Zyngier 2019-11-04 13:30 ` Marc Zyngier 2019-11-04 11:51 ` Mark Rutland 2019-11-04 11:51 ` Mark Rutland 2019-11-04 21:44 ` Sami Tolvanen 2019-11-04 21:44 ` Sami Tolvanen 2019-11-04 21:44 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 04/17] arm64: kernel: avoid x18 __cpu_soft_restart Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-04 11:39 ` Mark Rutland 2019-11-04 11:39 ` Mark Rutland 2019-11-04 16:44 ` Sami Tolvanen 2019-11-04 16:44 ` Sami Tolvanen 2019-11-04 16:44 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 05/17] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:36 ` Miguel Ojeda 2019-11-01 22:36 ` Miguel Ojeda 2019-11-01 22:36 ` Miguel Ojeda 2019-11-04 12:31 ` Mark Rutland 2019-11-04 12:31 ` Mark Rutland 2019-11-04 18:25 ` Sami Tolvanen 2019-11-04 18:25 ` Sami Tolvanen 2019-11-04 18:25 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 06/17] scs: add accounting Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-04 13:13 ` Marc Zyngier 2019-11-04 13:13 ` Marc Zyngier 2019-11-04 16:42 ` Sami Tolvanen 2019-11-04 16:42 ` Sami Tolvanen 2019-11-04 16:42 ` Sami Tolvanen 2019-11-04 16:59 ` Marc Zyngier 2019-11-04 16:59 ` Marc Zyngier 2019-11-01 22:11 ` [PATCH v4 07/17] scs: add support for stack usage debugging Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-02 17:31 ` Kees Cook 2019-11-02 17:31 ` Kees Cook 2019-11-04 12:40 ` Mark Rutland 2019-11-04 12:40 ` Mark Rutland 2019-11-04 21:35 ` Sami Tolvanen 2019-11-04 21:35 ` Sami Tolvanen 2019-11-04 21:35 ` Sami Tolvanen 2019-11-05 9:17 ` Mark Rutland 2019-11-05 9:17 ` Mark Rutland 2019-11-01 22:11 ` [PATCH v4 08/17] kprobes: fix compilation without CONFIG_KRETPROBES Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-13 20:27 ` Steven Rostedt 2019-11-13 20:27 ` Steven Rostedt 2019-11-01 22:11 ` [PATCH v4 09/17] arm64: kprobes: fix kprobes " Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 10/17] arm64: disable kretprobes with SCS Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-04 17:04 ` Mark Rutland 2019-11-04 17:04 ` Mark Rutland 2019-11-04 23:42 ` Sami Tolvanen 2019-11-04 23:42 ` Sami Tolvanen 2019-11-04 23:42 ` Sami Tolvanen 2019-11-05 9:04 ` Mark Rutland 2019-11-05 9:04 ` Mark Rutland 2019-11-01 22:11 ` [PATCH v4 11/17] arm64: disable function graph tracing " Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-04 17:11 ` Mark Rutland 2019-11-04 17:11 ` Mark Rutland 2019-11-04 23:44 ` Sami Tolvanen 2019-11-04 23:44 ` Sami Tolvanen 2019-11-04 23:44 ` Sami Tolvanen 2019-11-05 9:15 ` Mark Rutland 2019-11-05 9:15 ` Mark Rutland 2019-11-05 20:00 ` Nick Desaulniers 2019-11-05 20:00 ` Nick Desaulniers 2019-11-05 20:00 ` Nick Desaulniers 2019-11-05 22:05 ` Sami Tolvanen 2019-11-05 22:05 ` Sami Tolvanen 2019-11-05 22:05 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 12/17] arm64: reserve x18 from general allocation " Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 13/17] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-04 13:20 ` Marc Zyngier 2019-11-04 13:20 ` Marc Zyngier 2019-11-04 21:38 ` Sami Tolvanen 2019-11-04 21:38 ` Sami Tolvanen 2019-11-04 21:38 ` Sami Tolvanen 2019-11-04 21:59 ` Nick Desaulniers 2019-11-04 21:59 ` Nick Desaulniers 2019-11-04 21:59 ` Nick Desaulniers 2019-11-05 0:02 ` Sami Tolvanen 2019-11-05 0:02 ` Sami Tolvanen 2019-11-05 0:02 ` Sami Tolvanen 2019-11-05 14:55 ` Marc Zyngier 2019-11-05 14:55 ` Marc Zyngier 2019-11-01 22:11 ` [PATCH v4 14/17] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 15/17] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 16/17] arm64: disable SCS for hypervisor code Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` [PATCH v4 17/17] arm64: implement Shadow Call Stack Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-01 22:11 ` Sami Tolvanen 2019-11-05 23:55 ` [PATCH v5 00/14] add support for Clang's " Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` [PATCH v5 01/14] arm64: mm: avoid x18 in idmap_kpti_install_ng_mappings Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` [PATCH v5 02/14] arm64/lib: copy_page: avoid x18 register in assembler code Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` [PATCH v5 03/14] arm64: kvm: stop treating register x18 as caller save Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` [PATCH v5 04/14] arm64: kernel: avoid x18 in __cpu_soft_restart Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` [PATCH v5 05/14] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-05 23:55 ` Sami Tolvanen 2019-11-15 15:37 ` Mark Rutland 2019-11-15 15:37 ` Mark Rutland 2019-11-15 18:34 ` Sami Tolvanen 2019-11-15 18:34 ` Sami Tolvanen 2019-11-15 18:34 ` Sami Tolvanen 2019-11-05 23:56 ` [PATCH v5 06/14] scs: add accounting Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` [PATCH v5 07/14] scs: add support for stack usage debugging Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` [PATCH v5 08/14] arm64: disable function graph tracing with SCS Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-15 14:18 ` Mark Rutland 2019-11-15 14:18 ` Mark Rutland 2019-11-05 23:56 ` [PATCH v5 09/14] arm64: reserve x18 from general allocation " Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` [PATCH v5 10/14] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-06 20:39 ` Nick Desaulniers 2019-11-06 20:39 ` Nick Desaulniers 2019-11-06 20:39 ` Nick Desaulniers 2019-11-15 14:27 ` Mark Rutland 2019-11-15 14:27 ` Mark Rutland 2019-11-05 23:56 ` [PATCH v5 11/14] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-06 4:45 ` Miguel Ojeda 2019-11-06 4:45 ` Miguel Ojeda 2019-11-06 4:45 ` Miguel Ojeda 2019-11-07 10:51 ` Ard Biesheuvel 2019-11-07 10:51 ` Ard Biesheuvel 2019-11-07 10:51 ` Ard Biesheuvel 2019-11-07 16:26 ` Sami Tolvanen 2019-11-07 16:26 ` Sami Tolvanen 2019-11-07 16:26 ` Sami Tolvanen 2019-11-05 23:56 ` [PATCH v5 12/14] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-15 14:43 ` Mark Rutland 2019-11-15 14:43 ` Mark Rutland 2019-11-05 23:56 ` [PATCH v5 13/14] arm64: disable SCS for hypervisor code Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-15 14:46 ` Mark Rutland 2019-11-15 14:46 ` Mark Rutland 2019-11-05 23:56 ` [PATCH v5 14/14] arm64: implement Shadow Call Stack Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-05 23:56 ` Sami Tolvanen 2019-11-15 15:20 ` Mark Rutland 2019-11-15 15:20 ` Mark Rutland 2019-11-15 20:19 ` Sami Tolvanen 2019-11-15 20:19 ` Sami Tolvanen 2019-11-15 20:19 ` Sami Tolvanen 2019-11-18 23:13 ` Sami Tolvanen 2019-11-18 23:13 ` Sami Tolvanen 2019-11-12 23:44 ` [PATCH v5 00/14] add support for Clang's " Kees Cook 2019-11-12 23:44 ` Kees Cook 2019-11-13 12:03 ` Will Deacon 2019-11-13 12:03 ` Will Deacon 2019-11-13 18:33 ` Kees Cook 2019-11-13 18:33 ` Kees Cook 2019-11-15 14:16 ` Mark Rutland 2019-11-15 14:16 ` Mark Rutland 2019-12-06 22:13 ` [PATCH v6 00/15] " Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 01/15] arm64: mm: avoid x18 in idmap_kpti_install_ng_mappings Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 02/15] arm64/lib: copy_page: avoid x18 register in assembler code Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 03/15] arm64: kvm: stop treating register x18 as caller save Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 04/15] arm64: kernel: avoid x18 in __cpu_soft_restart Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 05/15] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 06/15] scs: add accounting Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 07/15] scs: add support for stack usage debugging Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 08/15] arm64: disable function graph tracing with SCS Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:39 ` Will Deacon 2020-01-16 17:39 ` Will Deacon 2020-01-16 21:45 ` Sami Tolvanen 2020-01-16 21:45 ` Sami Tolvanen 2020-01-16 21:45 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 09/15] arm64: reserve x18 from general allocation " Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:37 ` Will Deacon 2020-01-16 17:37 ` Will Deacon 2019-12-06 22:13 ` [PATCH v6 10/15] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:42 ` Will Deacon 2020-01-16 17:42 ` Will Deacon 2019-12-06 22:13 ` [PATCH v6 11/15] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:44 ` Will Deacon 2020-01-16 17:44 ` Will Deacon 2020-01-16 20:36 ` Sami Tolvanen 2020-01-16 20:36 ` Sami Tolvanen 2020-01-16 20:36 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 12/15] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:46 ` Will Deacon 2020-01-16 17:46 ` Will Deacon 2020-01-16 18:14 ` Sami Tolvanen 2020-01-16 18:14 ` Sami Tolvanen 2020-01-16 18:14 ` Sami Tolvanen 2020-01-16 18:18 ` Will Deacon 2020-01-16 18:18 ` Will Deacon 2019-12-06 22:13 ` [PATCH v6 13/15] arm64: disable SCS for hypervisor code Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:47 ` Will Deacon 2020-01-16 17:47 ` Will Deacon 2020-01-16 20:16 ` Sami Tolvanen 2020-01-16 20:16 ` Sami Tolvanen 2020-01-16 20:16 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 14/15] arm64: implement Shadow Call Stack Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 18:24 ` Will Deacon 2020-01-16 18:24 ` Will Deacon 2020-01-16 21:57 ` Sami Tolvanen 2020-01-16 21:57 ` Sami Tolvanen 2020-01-16 21:57 ` Sami Tolvanen 2019-12-06 22:13 ` [PATCH v6 15/15] arm64: scs: add shadow stacks for SDEI Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2019-12-06 22:13 ` Sami Tolvanen 2020-01-16 17:48 ` Will Deacon 2020-01-16 17:48 ` Will Deacon 2020-01-16 18:24 ` [PATCH v6 00/15] add support for Clang's Shadow Call Stack Will Deacon 2020-01-16 18:24 ` Will Deacon 2020-01-28 18:49 ` [PATCH v7 00/11] " Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 01/11] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 02/11] scs: add accounting Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 03/11] scs: add support for stack usage debugging Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 04/11] scs: disable when function graph tracing is enabled Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 22:50 ` Kees Cook 2020-01-28 22:50 ` Kees Cook 2020-01-28 18:49 ` [PATCH v7 05/11] arm64: reserve x18 from general allocation with SCS Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 06/11] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 07/11] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-02-10 16:41 ` Will Deacon 2020-02-10 16:41 ` Will Deacon 2020-01-28 18:49 ` [PATCH v7 08/11] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 09/11] arm64: disable SCS for hypervisor code Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-02-10 16:44 ` Will Deacon 2020-02-10 16:44 ` Will Deacon 2020-02-10 17:18 ` James Morse 2020-02-10 17:18 ` James Morse 2020-02-10 17:52 ` Will Deacon 2020-02-10 17:52 ` Will Deacon 2020-02-10 18:03 ` Mark Rutland 2020-02-10 18:03 ` Mark Rutland 2020-02-10 18:07 ` Will Deacon 2020-02-10 18:07 ` Will Deacon 2020-02-10 18:24 ` Mark Rutland 2020-02-10 18:24 ` Mark Rutland 2020-02-11 9:54 ` Will Deacon 2020-02-11 9:54 ` Will Deacon 2020-02-12 17:30 ` Sami Tolvanen 2020-02-12 17:30 ` Sami Tolvanen 2020-02-12 17:30 ` Sami Tolvanen 2020-02-11 9:14 ` Marc Zyngier 2020-02-11 9:14 ` Marc Zyngier 2020-02-11 9:55 ` Will Deacon 2020-02-11 9:55 ` Will Deacon 2020-02-11 10:00 ` Marc Zyngier 2020-02-11 10:00 ` Marc Zyngier 2020-01-28 18:49 ` [PATCH v7 10/11] arm64: implement Shadow Call Stack Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` [PATCH v7 11/11] arm64: scs: add shadow stacks for SDEI Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-01-28 18:49 ` Sami Tolvanen 2020-02-11 13:57 ` James Morse 2020-02-11 13:57 ` James Morse 2020-02-12 20:59 ` Sami Tolvanen 2020-02-12 20:59 ` Sami Tolvanen 2020-02-12 20:59 ` Sami Tolvanen 2020-02-14 18:13 ` James Morse 2020-02-14 18:13 ` James Morse 2020-02-11 13:57 ` [PATCH v7 00/11] add support for Clang's Shadow Call Stack James Morse 2020-02-11 13:57 ` James Morse 2020-02-12 17:36 ` Sami Tolvanen 2020-02-12 17:36 ` Sami Tolvanen 2020-02-12 17:36 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 00/12] " Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 01/12] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 4:19 ` Randy Dunlap 2020-02-19 4:19 ` Randy Dunlap 2020-02-19 17:25 ` Sami Tolvanen 2020-02-19 17:25 ` Sami Tolvanen 2020-02-19 17:25 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 02/12] scs: add accounting Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 03/12] scs: add support for stack usage debugging Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 04/12] scs: disable when function graph tracing is enabled Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 11:33 ` Mark Rutland 2020-02-19 11:33 ` Mark Rutland 2020-02-19 18:01 ` Sami Tolvanen 2020-02-19 18:01 ` Sami Tolvanen 2020-02-19 18:01 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 05/12] arm64: reserve x18 from general allocation with SCS Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 06/12] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 07/12] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 08/12] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 09/12] arm64: disable SCS for hypervisor code Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:58 ` Kees Cook 2020-02-19 0:58 ` Kees Cook 2020-02-19 7:50 ` Marc Zyngier 2020-02-19 7:50 ` Marc Zyngier 2020-02-19 0:08 ` [PATCH v8 10/12] arm64: implement Shadow Call Stack Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 11/12] arm64: scs: add shadow stacks for SDEI Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` [PATCH v8 12/12] efi/libstub: disable SCS Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:08 ` Sami Tolvanen 2020-02-19 0:58 ` Kees Cook 2020-02-19 0:58 ` Kees Cook 2020-02-19 7:40 ` Ard Biesheuvel 2020-02-19 7:40 ` Ard Biesheuvel 2020-02-19 7:40 ` Ard Biesheuvel 2020-02-19 18:27 ` Sami Tolvanen 2020-02-19 18:27 ` Sami Tolvanen 2020-02-19 18:27 ` Sami Tolvanen 2020-02-19 18:38 ` [PATCH v8 00/12] add support for Clang's Shadow Call Stack James Morse 2020-02-19 18:38 ` James Morse 2020-02-19 18:53 ` Ard Biesheuvel 2020-02-19 18:53 ` Ard Biesheuvel 2020-02-19 18:53 ` Ard Biesheuvel 2020-02-20 9:55 ` Marc Zyngier 2020-02-20 9:55 ` Marc Zyngier 2020-02-19 20:12 ` Sami Tolvanen 2020-02-19 20:12 ` Sami Tolvanen 2020-02-19 20:12 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 " Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 01/12] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 02/12] scs: add accounting Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 03/12] scs: add support for stack usage debugging Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 04/12] scs: disable when function graph tracing is enabled Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 05/12] arm64: reserve x18 from general allocation with SCS Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 06/12] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 07/12] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 08/12] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 09/12] arm64: disable SCS for hypervisor code Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 10/12] arm64: implement Shadow Call Stack Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-28 16:31 ` James Morse 2020-02-28 16:31 ` James Morse 2020-02-28 20:51 ` Sami Tolvanen 2020-02-28 20:51 ` Sami Tolvanen 2020-02-28 20:51 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 11/12] arm64: scs: add shadow stacks for SDEI Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` [PATCH v9 12/12] efi/libstub: disable SCS Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-02-25 17:39 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 00/12] add support for Clang's Shadow Call Stack Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 01/12] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 02/12] scs: add accounting Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 03/12] scs: add support for stack usage debugging Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 04/12] scs: disable when function graph tracing is enabled Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 05/12] arm64: reserve x18 from general allocation with SCS Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 06/12] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 07/12] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 08/12] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 09/12] arm64: disable SCS for hypervisor code Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 18:23 ` Kees Cook 2020-04-06 18:23 ` Kees Cook 2020-04-06 16:41 ` [PATCH v10 10/12] arm64: implement Shadow Call Stack Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 11/12] arm64: scs: add shadow stacks for SDEI Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` [PATCH v10 12/12] efi/libstub: disable SCS Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 16:41 ` Sami Tolvanen 2020-04-06 18:25 ` Kees Cook 2020-04-06 18:25 ` Kees Cook 2020-04-07 12:00 ` Ard Biesheuvel 2020-04-07 12:00 ` Ard Biesheuvel 2020-04-07 12:00 ` Ard Biesheuvel 2020-04-16 16:12 ` [PATCH v11 00/12] add support for Clang's Shadow Call Stack Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen [this message] 2020-04-16 16:12 ` [PATCH v11 01/12] add support for Clang's Shadow Call Stack (SCS) Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-20 17:17 ` Will Deacon 2020-04-20 17:17 ` Will Deacon 2020-04-16 16:12 ` [PATCH v11 02/12] scs: add accounting Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 03/12] scs: add support for stack usage debugging Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 04/12] scs: disable when function graph tracing is enabled Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-17 10:00 ` Peter Zijlstra 2020-04-17 10:00 ` Peter Zijlstra 2020-04-17 14:46 ` Mark Rutland 2020-04-17 14:46 ` Mark Rutland 2020-04-17 15:26 ` Peter Zijlstra 2020-04-17 15:26 ` Peter Zijlstra 2020-04-17 15:46 ` Mark Rutland 2020-04-17 15:46 ` Mark Rutland 2020-04-17 23:19 ` Sami Tolvanen 2020-04-17 23:19 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 05/12] arm64: reserve x18 from general allocation with SCS Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 06/12] arm64: preserve x18 when CPU is suspended Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 07/12] arm64: efi: restore x18 if it was corrupted Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 08/12] arm64: vdso: disable Shadow Call Stack Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 09/12] arm64: disable SCS for hypervisor code Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 10/12] arm64: implement Shadow Call Stack Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 11/12] arm64: scs: add shadow stacks for SDEI Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` [PATCH v11 12/12] efi/libstub: disable SCS Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen 2020-04-16 16:12 ` Sami Tolvanen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200416161245.148813-2-samitolvanen@google.com \ --to=samitolvanen@google.com \ --cc=Dave.Martin@arm.com \ --cc=ard.biesheuvel@linaro.org \ --cc=catalin.marinas@arm.com \ --cc=clang-built-linux@googlegroups.com \ --cc=james.morse@arm.com \ --cc=jannh@google.com \ --cc=juri.lelli@redhat.com \ --cc=keescook@chromium.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=labbott@redhat.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=masahiroy@kernel.org \ --cc=maz@kernel.org \ --cc=mhiramat@kernel.org \ --cc=michal.lkml@markovi.net \ --cc=miguel.ojeda.sandonis@gmail.com \ --cc=mingo@redhat.com \ --cc=ndesaulniers@google.com \ --cc=peterz@infradead.org \ --cc=rostedt@goodmis.org \ --cc=vincent.guittot@linaro.org \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.