Re: [PATCH 6/6] scs: Move DEFINE_SCS macro into core code

From: Mark Rutland
Date: Mon May 18 2020 - 08:14:49 EST


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@xxxxxxxxxx>

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
>