Thread (148 messages) 148 messages, 17 authors, 2022-06-09

Re: [PATCH 19/35] mm/mmap: Add shadow stack pages to memory accounting

From: Dave Hansen <hidden>
Date: 2022-02-09 22:28:57
Also in: linux-arch, linux-doc, linux-mm, lkml

On 1/30/22 13:18, Rick Edgecombe wrote:
quoted hunk ↗ jump to hunk
+bool is_shadow_stack_mapping(vm_flags_t vm_flags)
+{
+	return vm_flags & VM_SHADOW_STACK;
+}
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index bc8713a76e03..21fdb1273571 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -911,6 +911,14 @@ static inline void ptep_modify_prot_commit(struct vm_area_struct *vma,
 	__ptep_modify_prot_commit(vma, addr, ptep, pte);
 }
 #endif /* __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION */
+
+#ifndef is_shadow_stack_mapping
+static inline bool is_shadow_stack_mapping(vm_flags_t vm_flags)
+{
+	return false;
+}
+#endif
Hold your horses there.  Remember:

+#ifdef CONFIG_X86_SHADOW_STACK
+# define VM_SHADOW_STACK       VM_HIGH_ARCH_5
+#else
+# define VM_SHADOW_STACK       VM_NONE
+#endif

Plus:

#define VM_NONE         0x00000000

That means the arch-generic version, when CONFIG_X86_SHADOW_STACK is off
compiles down to:

bool is_shadow_stack_mapping(vm_flags_t vm_flags)
{
	return vm_flags & 0x00000000;
}

I _suspect_ the compiler *might* compile that down to the same thing as:

	return false;

So, why not just have one version, no additional #ifdefs, and be done
with it?  Heck, why have the helper in the first place?  Just check
VM_SHADOW_STACK directly.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help