Message ID | 20230613001108.3040476-6-rick.p.edgecombe@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Shadow stacks for userspace | expand |
On 13.06.23 02:10, Rick Edgecombe wrote: > From: Yu-cheng Yu <yu-cheng.yu@intel.com> > > The x86 Control-flow Enforcement Technology (CET) feature includes a new > type of memory called shadow stack. This shadow stack memory has some > unusual properties, which requires some core mm changes to function > properly. > > Future patches will introduce a new VM flag VM_SHADOW_STACK that will be > VM_HIGH_ARCH_BIT_5. VM_HIGH_ARCH_BIT_1 through VM_HIGH_ARCH_BIT_4 are > bits 32-36, and bit 37 is the unrelated VM_UFFD_MINOR_BIT. For the sake > of order, make all VM_HIGH_ARCH_BITs stay together by moving > VM_UFFD_MINOR_BIT from 37 to 38. This will allow VM_SHADOW_STACK to be > introduced as 37. > > Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com> > Co-developed-by: Rick Edgecombe <rick.p.edgecombe@intel.com> > Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> > Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> > Reviewed-by: Kees Cook <keescook@chromium.org> > Reviewed-by: Axel Rasmussen <axelrasmussen@google.com> > Acked-by: Mike Rapoport (IBM) <rppt@kernel.org> > Acked-by: Peter Xu <peterx@redhat.com> > Tested-by: Pengfei Xu <pengfei.xu@intel.com> > Tested-by: John Allen <john.allen@amd.com> > Tested-by: Kees Cook <keescook@chromium.org> > --- > include/linux/mm.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 9ec20cbb20c1..6f52c1e7c640 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -370,7 +370,7 @@ extern unsigned int kobjsize(const void *objp); > #endif > > #ifdef CONFIG_HAVE_ARCH_USERFAULTFD_MINOR > -# define VM_UFFD_MINOR_BIT 37 > +# define VM_UFFD_MINOR_BIT 38 > # define VM_UFFD_MINOR BIT(VM_UFFD_MINOR_BIT) /* UFFD minor faults */ > #else /* !CONFIG_HAVE_ARCH_USERFAULTFD_MINOR */ > # define VM_UFFD_MINOR VM_NONE Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/include/linux/mm.h b/include/linux/mm.h index 9ec20cbb20c1..6f52c1e7c640 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -370,7 +370,7 @@ extern unsigned int kobjsize(const void *objp); #endif #ifdef CONFIG_HAVE_ARCH_USERFAULTFD_MINOR -# define VM_UFFD_MINOR_BIT 37 +# define VM_UFFD_MINOR_BIT 38 # define VM_UFFD_MINOR BIT(VM_UFFD_MINOR_BIT) /* UFFD minor faults */ #else /* !CONFIG_HAVE_ARCH_USERFAULTFD_MINOR */ # define VM_UFFD_MINOR VM_NONE