OSDN Git Service

Merge tag 'leds-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel...
[uclinux-h8/linux.git] / arch / Kconfig
index d544abd..84bc1de 100644 (file)
@@ -24,9 +24,6 @@ config KEXEC_ELF
 config HAVE_IMA_KEXEC
        bool
 
-config SET_FS
-       bool
-
 config HOTPLUG_SMT
        bool
 
@@ -205,6 +202,9 @@ config HAVE_FUNCTION_ERROR_INJECTION
 config HAVE_NMI
        bool
 
+config HAVE_FUNCTION_DESCRIPTORS
+       bool
+
 config TRACE_IRQFLAGS_SUPPORT
        bool
 
@@ -599,21 +599,22 @@ config STACKPROTECTOR_STRONG
 config ARCH_SUPPORTS_SHADOW_CALL_STACK
        bool
        help
-         An architecture should select this if it supports Clang's Shadow
-         Call Stack and implements runtime support for shadow stack
+         An architecture should select this if it supports the compiler's
+         Shadow Call Stack and implements runtime support for shadow stack
          switching.
 
 config SHADOW_CALL_STACK
-       bool "Clang Shadow Call Stack"
-       depends on CC_IS_CLANG && ARCH_SUPPORTS_SHADOW_CALL_STACK
+       bool "Shadow Call Stack"
+       depends on ARCH_SUPPORTS_SHADOW_CALL_STACK
        depends on DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
        help
-         This option enables Clang's Shadow Call Stack, which uses a
-         shadow stack to protect function return addresses from being
-         overwritten by an attacker. More information can be found in
-         Clang's documentation:
+         This option enables the compiler's Shadow Call Stack, which
+         uses a shadow stack to protect function return addresses from
+         being overwritten by an attacker. More information can be found
+         in the compiler's documentation:
 
-           https://clang.llvm.org/docs/ShadowCallStack.html
+         - Clang: https://clang.llvm.org/docs/ShadowCallStack.html
+         - GCC: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
 
          Note that security guarantees in the kernel differ from the
          ones documented for user space. The kernel must store addresses
@@ -898,6 +899,13 @@ config HAVE_SOFTIRQ_ON_OWN_STACK
          Architecture provides a function to run __do_softirq() on a
          separate stack.
 
+config ALTERNATE_USER_ADDRESS_SPACE
+       bool
+       help
+         Architectures set this when the CPU uses separate address
+         spaces for kernel and user space pointers. In this case, the
+         access_ok() check on a __user pointer is skipped.
+
 config PGTABLE_LEVELS
        int
        default 2
@@ -1159,16 +1167,30 @@ config HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
          to the compiler, so it will attempt to add canary checks regardless
          of the static branch state.
 
-config RANDOMIZE_KSTACK_OFFSET_DEFAULT
-       bool "Randomize kernel stack offset on syscall entry"
+config RANDOMIZE_KSTACK_OFFSET
+       bool "Support for randomizing kernel stack offset on syscall entry" if EXPERT
+       default y
        depends on HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
+       depends on INIT_STACK_NONE || !CC_IS_CLANG || CLANG_VERSION >= 140000
        help
          The kernel stack offset can be randomized (after pt_regs) by
          roughly 5 bits of entropy, frustrating memory corruption
          attacks that depend on stack address determinism or
-         cross-syscall address exposures. This feature is controlled
-         by kernel boot param "randomize_kstack_offset=on/off", and this
-         config chooses the default boot state.
+         cross-syscall address exposures.
+
+         The feature is controlled via the "randomize_kstack_offset=on/off"
+         kernel boot param, and if turned off has zero overhead due to its use
+         of static branches (see JUMP_LABEL).
+
+         If unsure, say Y.
+
+config RANDOMIZE_KSTACK_OFFSET_DEFAULT
+       bool "Default state of kernel stack offset randomization"
+       depends on RANDOMIZE_KSTACK_OFFSET
+       help
+         Kernel stack offset randomization is controlled by kernel boot param
+         "randomize_kstack_offset=on/off", and this config chooses the default
+         boot state.
 
 config ARCH_OPTIONAL_KERNEL_RWX
        def_bool n