]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mm: Introduce ARCH_HAS_USER_SHADOW_STACK
authorMark Brown <broonie@kernel.org>
Tue, 1 Oct 2024 22:58:40 +0000 (23:58 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 4 Oct 2024 11:04:32 +0000 (12:04 +0100)
Since multiple architectures have support for shadow stacks and we need to
select support for this feature in several places in the generic code
provide a generic config option that the architectures can select.

Suggested-by: David Hildenbrand <david@redhat.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Kees Cook <kees@kernel.org>
Tested-by: Kees Cook <kees@kernel.org>
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20241001-arm64-gcs-v13-1-222b78d87eee@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/x86/Kconfig
fs/proc/task_mmu.c
mm/Kconfig

index 2852fcd82cbd8c48983c92f0b6634a1c475b9404..8ccae77d40f7706bed76f4872a01e553a4ebb8ea 100644 (file)
@@ -1954,6 +1954,7 @@ config X86_USER_SHADOW_STACK
        depends on AS_WRUSS
        depends on X86_64
        select ARCH_USES_HIGH_VMA_FLAGS
+       select ARCH_HAS_USER_SHADOW_STACK
        select X86_CET
        help
          Shadow stack protection is a hardware feature that detects function
index 72f14fd59c2d01aaeac216cdd24c8006e2f875b5..23f875e78eae830e3c2c750b8edf17d214b84125 100644 (file)
@@ -971,7 +971,7 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
 #ifdef CONFIG_HAVE_ARCH_USERFAULTFD_MINOR
                [ilog2(VM_UFFD_MINOR)]  = "ui",
 #endif /* CONFIG_HAVE_ARCH_USERFAULTFD_MINOR */
-#ifdef CONFIG_X86_USER_SHADOW_STACK
+#ifdef CONFIG_ARCH_HAS_USER_SHADOW_STACK
                [ilog2(VM_SHADOW_STACK)] = "ss",
 #endif
 #if defined(CONFIG_64BIT) || defined(CONFIG_PPC32)
index 4c9f5ea13271d1f90163e75a35adf619ada3a5cd..4b2a1ef9a161cb8642c83c240c434c1e6073f0f3 100644 (file)
@@ -1296,6 +1296,12 @@ config NUMA_EMU
          into virtual nodes when booted with "numa=fake=N", where N is the
          number of nodes. This is only useful for debugging.
 
+config ARCH_HAS_USER_SHADOW_STACK
+       bool
+       help
+         The architecture has hardware support for userspace shadow call
+          stacks (eg, x86 CET, arm64 GCS or RISC-V Zicfiss).
+
 source "mm/damon/Kconfig"
 
 endmenu