On 3/17/23 10:12, Deepak Gupta wrote:
quoted
/*
- * 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.