[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200518121441.GE1957@C02TD0UTHF1T.local>
Date: Mon, 18 May 2020 13:14:41 +0100
From: Mark Rutland <mark.rutland@....com>
To: Will Deacon <will@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
Sami Tolvanen <samitolvanen@...gle.com>,
Kees Cook <keescook@...omium.org>,
Catalin Marinas <catalin.marinas@....com>,
Mark Rutland <mark.rutland@...com>,
Jann Horn <jannh@...gle.com>, Ard Biesheuvel <ardb@...nel.org>,
Peter Zijlstra <peterz@...radead.org>, kernel-team@...roid.com
Subject: Re: [PATCH 6/6] scs: Move DEFINE_SCS macro into core code
On Fri, May 15, 2020 at 06:27:56PM +0100, Will Deacon wrote:
> Defining static shadow call stacks is not architecture-specific, so move
> the DEFINE_SCS() macro into the core header file.
>
> Signed-off-by: Will Deacon <will@...nel.org>
I think that we'll have to pull this back into arch code if/when we deal
with VMAP'd stacks, so I'm not sure this is worthwhile given the
diffstat is balanced.
Mark.
> ---
> arch/arm64/kernel/scs.c | 4 ----
> include/linux/scs.h | 4 ++++
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/kernel/scs.c b/arch/arm64/kernel/scs.c
> index 955875dff9e1..e8f7ff45dd8f 100644
> --- a/arch/arm64/kernel/scs.c
> +++ b/arch/arm64/kernel/scs.c
> @@ -8,10 +8,6 @@
> #include <linux/percpu.h>
> #include <linux/scs.h>
>
> -/* Allocate a static per-CPU shadow stack */
> -#define DEFINE_SCS(name) \
> - DEFINE_PER_CPU(unsigned long [SCS_SIZE/sizeof(long)], name) \
> -
> DEFINE_SCS(irq_shadow_call_stack);
>
> #ifdef CONFIG_ARM_SDE_INTERFACE
> diff --git a/include/linux/scs.h b/include/linux/scs.h
> index 2fd3df50e93e..6dec390cf154 100644
> --- a/include/linux/scs.h
> +++ b/include/linux/scs.h
> @@ -26,6 +26,10 @@
> /* An illegal pointer value to mark the end of the shadow stack. */
> #define SCS_END_MAGIC (0x5f6UL + POISON_POINTER_DELTA)
>
> +/* Allocate a static per-CPU shadow stack */
> +#define DEFINE_SCS(name) \
> + DEFINE_PER_CPU(unsigned long [SCS_SIZE/sizeof(long)], name) \
> +
> #define task_scs(tsk) (task_thread_info(tsk)->scs_base)
> #define task_scs_sp(tsk) (task_thread_info(tsk)->scs_sp)
>
> --
> 2.26.2.761.g0e0b3e54be-goog
>
Powered by blists - more mailing lists