On 3/17/23 10:12, Deepak Gupta wrote: >> /* >> - * Stack area - automatically grows in one direction >> + * Stack area >> * >> - * VM_GROWSUP / VM_GROWSDOWN VMAs are always private anonymous: >> - * do_mmap() forbids all other combinations. >> + * VM_GROWSUP, VM_GROWSDOWN VMAs are always private >> + * anonymous. do_mmap() forbids all other combinations. >> */ >> static inline bool is_stack_mapping(vm_flags_t flags) >> { >> - return (flags & VM_STACK) == VM_STACK; >> + return ((flags & VM_STACK) == VM_STACK) || (flags & VM_SHADOW_STACK); > Same comment here. `VM_SHADOW_STACK` is an x86 specific way of > encoding a shadow stack. > Instead let's have a proxy here which allows architectures to have > their own encodings to represent a shadow stack. This doesn't _preclude_ another architecture from coming along and doing that, right? I'd just prefer that shadow stack architecture #2 comes along and refactors this in precisely the way _they_ need it.