On Thu, 2023-11-16 at 18:14 +0000, Mark Brown wrote: > On Thu, Nov 16, 2023 at 12:52:09AM +0000, Edgecombe, Rick P wrote: > > On Wed, 2023-11-15 at 18:43 +0000, Mark Brown wrote: > > > > end marker token (0) needs it i guess. > > > > x86 doesn't currently have end markers. Actually, that's a point > > > - > > > should we add a flag for specifying the use of end markers here? > > > There's code in my map_shadow_stack() implementation for arm64 > > > which > > > does that. > > > Hmm, I guess there isn't a way to pass a flag for the initial exec > > stack? So probably it should just mirror that behavior. Unless you > > think a lot of people would like to skip the default behavior. > > I don't really know that anyone would particularly want to use a flag > on > arm64, I was more thinking for the benefit of x86 where any > termination > record would be a change. It's certainly easier to not have flags so > I'm more than happy to leave things as they are, there's nothing > stopping further extensions of the ABI if we decide we want them > later. I'm hoping that shifting the shadow stack start by one frame for thread stacks (where there is no token to find) will not disturb anything. But for x86, we will need a new elf bit to be fully safe in implementing alt shadow stack. When we do that we will have a chance to add an end of stack marker without compatibility issues on x86. So just doing default behavior seems fine. For map_shadow_stack, the end of stack marker will shift the token, which userspace needs to find, so that is why I wanted a flag for that. Appreciate the consideration.