On Fri, Oct 18, 2019 at 9:49 AM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S > > index fdabf40a83c8..9a8bd4bc8549 100644 > > --- a/arch/arm64/mm/proc.S > > +++ b/arch/arm64/mm/proc.S > > @@ -73,6 +73,9 @@ alternative_endif > > stp x8, x9, [x0, #48] > > stp x10, x11, [x0, #64] > > stp x12, x13, [x0, #80] > > +#ifdef CONFIG_SHADOW_CALL_STACK > > + stp x18, xzr, [x0, #96] > > Could this be a str/ldr of just x18 rather than stp/ldp of x18 + > garbage? Maybe there's no real cost difference, or some kind of > alignment invariant? Sure, this can be changed to str/ldr. I don't think there's a noticeable difference in cost. Sami