Merge tag 'riscv/for-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv...
[sfrench/cifs-2.6.git] / arch / x86 / Kconfig
index fa021ec3880375276d2c1cb59ee76aee79ee8564..78772870facdc86486048801602cb17283726479 100644 (file)
@@ -17,6 +17,7 @@ config X86_32
        select HAVE_DEBUG_STACKOVERFLOW
        select MODULES_USE_ELF_REL
        select OLD_SIGACTION
+       select GENERIC_VDSO_32
 
 config X86_64
        def_bool y
@@ -69,6 +70,7 @@ config X86
        select ARCH_HAS_KCOV                    if X86_64
        select ARCH_HAS_MEMBARRIER_SYNC_CORE
        select ARCH_HAS_PMEM_API                if X86_64
+       select ARCH_HAS_PTE_DEVMAP              if X86_64
        select ARCH_HAS_PTE_SPECIAL
        select ARCH_HAS_REFCOUNT
        select ARCH_HAS_UACCESS_FLUSHCACHE      if X86_64
@@ -79,7 +81,6 @@ config X86
        select ARCH_HAS_STRICT_MODULE_RWX
        select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
        select ARCH_HAS_UBSAN_SANITIZE_ALL
-       select ARCH_HAS_ZONE_DEVICE             if X86_64
        select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select ARCH_MIGHT_HAVE_ACPI_PDC         if ACPI
        select ARCH_MIGHT_HAVE_PC_PARPORT
@@ -122,6 +123,8 @@ config X86
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select GENERIC_TIME_VSYSCALL
+       select GENERIC_GETTIMEOFDAY
+       select GUP_GET_PTE_LOW_HIGH             if X86_PAE
        select HARDLOCKUP_CHECK_TIMESTAMP       if X86_64
        select HAVE_ACPI_APEI                   if ACPI
        select HAVE_ACPI_APEI_NMI               if ACPI
@@ -157,6 +160,7 @@ config X86
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select HAVE_EISA
        select HAVE_EXIT_THREAD
+       select HAVE_FAST_GUP
        select HAVE_FENTRY                      if X86_64 || DYNAMIC_FTRACE
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_FUNCTION_GRAPH_TRACER
@@ -203,6 +207,7 @@ config X86
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_UNSTABLE_SCHED_CLOCK
        select HAVE_USER_RETURN_NOTIFIER
+       select HAVE_GENERIC_VDSO
        select HOTPLUG_SMT                      if SMP
        select IRQ_FORCED_THREADING
        select NEED_SG_DMA_LENGTH
@@ -218,6 +223,7 @@ config X86
        select USER_STACKTRACE_SUPPORT
        select VIRT_TO_BUS
        select X86_FEATURE_NAMES                if PROC_FS
+       select PROC_PID_ARCH_STATUS             if PROC_FS
 
 config INSTRUCTION_DECODER
        def_bool y
@@ -393,8 +399,8 @@ config SMP
          Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
          Management" code will be disabled if you say Y here.
 
-         See also <file:Documentation/x86/i386/IO-APIC.txt>,
-         <file:Documentation/lockup-watchdogs.txt> and the SMP-HOWTO available at
+         See also <file:Documentation/x86/i386/IO-APIC.rst>,
+         <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
          <http://www.tldp.org/docs.html#howto>.
 
          If you don't know what to do here, say N.
@@ -779,6 +785,9 @@ config PARAVIRT_SPINLOCKS
 
          If you are unsure how to answer this question, answer Y.
 
+config X86_HV_CALLBACK_VECTOR
+       def_bool n
+
 source "arch/x86/xen/Kconfig"
 
 config KVM_GUEST
@@ -830,6 +839,17 @@ config JAILHOUSE_GUEST
          cell. You can leave this option disabled if you only want to start
          Jailhouse and run Linux afterwards in the root cell.
 
+config ACRN_GUEST
+       bool "ACRN Guest support"
+       depends on X86_64
+       select X86_HV_CALLBACK_VECTOR
+       help
+         This option allows to run Linux as guest in the ACRN hypervisor. ACRN is
+         a flexible, lightweight reference open-source hypervisor, built with
+         real-time and safety-criticality in mind. It is built for embedded
+         IOT with small footprint and real-time features. More details can be
+         found in https://projectacrn.org/.
+
 endif #HYPERVISOR_GUEST
 
 source "arch/x86/Kconfig.cpu"
@@ -1288,7 +1308,7 @@ config MICROCODE
          the Linux kernel.
 
          The preferred method to load microcode from a detached initrd is described
-         in Documentation/x86/microcode.txt. For that you need to enable
+         in Documentation/x86/microcode.rst. For that you need to enable
          CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
          initrd for microcode blobs.
 
@@ -1327,7 +1347,7 @@ config MICROCODE_OLD_INTERFACE
          It is inadequate because it runs too late to be able to properly
          load microcode on a machine and it needs special tools. Instead, you
          should've switched to the early loading method with the initrd or
-         builtin microcode by now: Documentation/x86/microcode.txt
+         builtin microcode by now: Documentation/x86/microcode.rst
 
 config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -1476,7 +1496,7 @@ config X86_5LEVEL
          A kernel with the option enabled can be booted on machines that
          support 4- or 5-level paging.
 
-         See Documentation/x86/x86_64/5level-paging.txt for more
+         See Documentation/x86/x86_64/5level-paging.rst for more
          information.
 
          Say N if unsure.
@@ -1624,7 +1644,7 @@ config ARCH_MEMORY_PROBE
        depends on X86_64 && MEMORY_HOTPLUG
        help
          This option enables a sysfs memory/probe interface for testing.
-         See Documentation/memory-hotplug.txt for more information.
+         See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
          If you are unsure how to answer this question, answer N.
 
 config ARCH_PROC_KCORE_TEXT
@@ -1781,7 +1801,7 @@ config MTRR
          You can safely say Y even if your machine doesn't have MTRRs, you'll
          just add about 9 KB to your kernel.
 
-         See <file:Documentation/x86/mtrr.txt> for more information.
+         See <file:Documentation/x86/mtrr.rst> for more information.
 
 config MTRR_SANITIZER
        def_bool y
@@ -1893,7 +1913,7 @@ config X86_INTEL_MPX
          process and adds some branches to paths used during
          exec() and munmap().
 
-         For details, see Documentation/x86/intel_mpx.txt
+         For details, see Documentation/x86/intel_mpx.rst
 
          If unsure, say N.
 
@@ -1909,7 +1929,7 @@ config X86_INTEL_MEMORY_PROTECTION_KEYS
          page-based protections, but without requiring modification of the
          page tables when an application changes protection domains.
 
-         For details, see Documentation/x86/protection-keys.txt
+         For details, see Documentation/core-api/protection-keys.rst
 
          If unsure, say y.
 
@@ -1937,7 +1957,7 @@ config EFI_STUB
           This kernel feature allows a bzImage to be loaded directly
          by EFI firmware without the use of a bootloader.
 
-         See Documentation/efi-stub.txt for more information.
+         See Documentation/admin-guide/efi-stub.rst for more information.
 
 config EFI_MIXED
        bool "EFI mixed-mode support"
@@ -2035,7 +2055,7 @@ config CRASH_DUMP
          to a memory address not used by the main kernel or BIOS using
          PHYSICAL_START, or it must be built as a relocatable image
          (CONFIG_RELOCATABLE=y).
-         For more details see Documentation/kdump/kdump.txt
+         For more details see Documentation/admin-guide/kdump/kdump.rst
 
 config KEXEC_JUMP
        bool "kexec jump"
@@ -2072,7 +2092,7 @@ config PHYSICAL_START
          the reserved region.  In other words, it can be set based on
          the "X" value as specified in the "crashkernel=YM@XM"
          command line boot parameter passed to the panic-ed
-         kernel. Please take a look at Documentation/kdump/kdump.txt
+         kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst
          for more details about crash dumps.
 
          Usage of bzImage for capturing the crash dump is recommended as
@@ -2283,7 +2303,7 @@ config COMPAT_VDSO
 choice
        prompt "vsyscall table for legacy applications"
        depends on X86_64
-       default LEGACY_VSYSCALL_EMULATE
+       default LEGACY_VSYSCALL_XONLY
        help
          Legacy user code that does not know how to find the vDSO expects
          to be able to issue three syscalls by calling fixed addresses in
@@ -2291,23 +2311,38 @@ choice
          it can be used to assist security vulnerability exploitation.
 
          This setting can be changed at boot time via the kernel command
-         line parameter vsyscall=[emulate|none].
+         line parameter vsyscall=[emulate|xonly|none].
 
          On a system with recent enough glibc (2.14 or newer) and no
          static binaries, you can say None without a performance penalty
          to improve security.
 
-         If unsure, select "Emulate".
+         If unsure, select "Emulate execution only".
 
        config LEGACY_VSYSCALL_EMULATE
-               bool "Emulate"
+               bool "Full emulation"
+               help
+                 The kernel traps and emulates calls into the fixed vsyscall
+                 address mapping. This makes the mapping non-executable, but
+                 it still contains readable known contents, which could be
+                 used in certain rare security vulnerability exploits. This
+                 configuration is recommended when using legacy userspace
+                 that still uses vsyscalls along with legacy binary
+                 instrumentation tools that require code to be readable.
+
+                 An example of this type of legacy userspace is running
+                 Pin on an old binary that still uses vsyscalls.
+
+       config LEGACY_VSYSCALL_XONLY
+               bool "Emulate execution only"
                help
-                 The kernel traps and emulates calls into the fixed
-                 vsyscall address mapping. This makes the mapping
-                 non-executable, but it still contains known contents,
-                 which could be used in certain rare security vulnerability
-                 exploits. This configuration is recommended when userspace
-                 still uses the vsyscall area.
+                 The kernel traps and emulates calls into the fixed vsyscall
+                 address mapping and does not allow reads.  This
+                 configuration is recommended when userspace might use the
+                 legacy vsyscall area but support for legacy binary
+                 instrumentation of legacy code is not needed.  It mitigates
+                 certain uses of the vsyscall area as an ASLR-bypassing
+                 buffer.
 
        config LEGACY_VSYSCALL_NONE
                bool "None"
@@ -2445,7 +2480,7 @@ menuconfig APM
          machines with more than one CPU.
 
          In order to use APM, you will need supporting software. For location
-         and more information, read <file:Documentation/power/apm-acpi.txt>
+         and more information, read <file:Documentation/power/apm-acpi.rst>
          and the Battery Powered Linux mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.
 
@@ -2696,6 +2731,7 @@ config OLPC
        select OF
        select OF_PROMTREE
        select IRQ_DOMAIN
+       select OLPC_EC
        ---help---
          Add support for detecting the unique features of the OLPC
          XO hardware.
@@ -2871,9 +2907,6 @@ config HAVE_ATOMIC_IOMAP
 config X86_DEV_DMA_OPS
        bool
 
-config HAVE_GENERIC_GUP
-       def_bool y
-
 source "drivers/firmware/Kconfig"
 
 source "arch/x86/kvm/Kconfig"