Re: [PATCH v6 14/15] arm64: implement Shadow Call Stack

From: Sami Tolvanen
Date: Thu Jan 16 2020 - 16:58:07 EST


On Thu, Jan 16, 2020 at 10:24 AM Will Deacon <will@xxxxxxxxxx> wrote:
> > .macro irq_stack_entry
> > mov x19, sp // preserve the original sp
> > +#ifdef CONFIG_SHADOW_CALL_STACK
> > + mov x20, x18 // preserve the original shadow stack
> > +#endif
>
> Hmm, not sure about corrupting x20 here. Doesn't it hold the PMR value from
> kernel_entry?

You're right, and it's used in el1_irq after irq_handler if
CONFIG_ARM64_PSEUDO_NMI is enabled. Thanks for pointing this out.
Looks like one of x24-x29 should be safe here, and the comment needs
to be updated to explain why x20-x23 shouldn't be corrupted.

Sami