Merge tag 'v6.8-rc4' into x86/percpu, to resolve conflicts and refresh the branch
[sfrench/cifs-2.6.git] / arch / x86 / Kconfig
index 54e79d3061f96220255202c0214c584f4b3d25f1..0a31b515d1205d0246e72fb796083e74c70049b6 100644 (file)
@@ -28,7 +28,6 @@ config X86_64
        select ARCH_HAS_GIGANTIC_PAGE
        select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
        select ARCH_SUPPORTS_PER_VMA_LOCK
-       select ARCH_USE_CMPXCHG_LOCKREF
        select HAVE_ARCH_SOFT_DIRTY
        select MODULES_USE_ELF_RELA
        select NEED_DMA_MAP_STATE
@@ -60,6 +59,7 @@ config X86
        #
        select ACPI_LEGACY_TABLES_LOOKUP        if ACPI
        select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
+       select ACPI_HOTPLUG_CPU                 if ACPI_PROCESSOR && HOTPLUG_CPU
        select ARCH_32BIT_OFF_T                 if X86_32
        select ARCH_CLOCKSOURCE_INIT
        select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
@@ -72,6 +72,7 @@ config X86
        select ARCH_HAS_CACHE_LINE_SIZE
        select ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
        select ARCH_HAS_CPU_FINALIZE_INIT
+       select ARCH_HAS_CPU_PASID               if IOMMU_SVA
        select ARCH_HAS_CURRENT_STACK_POINTER
        select ARCH_HAS_DEBUG_VIRTUAL
        select ARCH_HAS_DEBUG_VM_PGTABLE        if !X86_PAE
@@ -89,6 +90,7 @@ config X86
        select ARCH_HAS_PMEM_API                if X86_64
        select ARCH_HAS_PTE_DEVMAP              if X86_64
        select ARCH_HAS_PTE_SPECIAL
+       select ARCH_HAS_HW_PTE_YOUNG
        select ARCH_HAS_NONLEAF_PMD_YOUNG       if PGTABLE_LEVELS > 2
        select ARCH_HAS_UACCESS_FLUSHCACHE      if X86_64
        select ARCH_HAS_COPY_MC                 if X86_64
@@ -118,6 +120,7 @@ config X86
        select ARCH_SUPPORTS_LTO_CLANG
        select ARCH_SUPPORTS_LTO_CLANG_THIN
        select ARCH_USE_BUILTIN_BSWAP
+       select ARCH_USE_CMPXCHG_LOCKREF         if X86_CMPXCHG64
        select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
@@ -147,6 +150,7 @@ config X86
        select GENERIC_CLOCKEVENTS_MIN_ADJUST
        select GENERIC_CMOS_UPDATE
        select GENERIC_CPU_AUTOPROBE
+       select GENERIC_CPU_DEVICES
        select GENERIC_CPU_VULNERABILITIES
        select GENERIC_EARLY_IOREMAP
        select GENERIC_ENTRY
@@ -169,7 +173,7 @@ config X86
        select HAS_IOPORT
        select HAVE_ACPI_APEI                   if ACPI
        select HAVE_ACPI_APEI_NMI               if ACPI
-       select HAVE_ALIGNED_STRUCT_PAGE         if SLUB
+       select HAVE_ALIGNED_STRUCT_PAGE
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HUGE_VMAP              if X86_64 || X86_PAE
        select HAVE_ARCH_HUGE_VMALLOC           if X86_64
@@ -384,10 +388,6 @@ config HAVE_INTEL_TXT
        def_bool y
        depends on INTEL_IOMMU && ACPI
 
-config X86_32_SMP
-       def_bool y
-       depends on X86_32 && SMP
-
 config X86_64_SMP
        def_bool y
        depends on X86_64 && SMP
@@ -1313,16 +1313,41 @@ config MICROCODE
        def_bool y
        depends on CPU_SUP_AMD || CPU_SUP_INTEL
 
+config MICROCODE_INITRD32
+       def_bool y
+       depends on MICROCODE && X86_32 && BLK_DEV_INITRD
+
 config MICROCODE_LATE_LOADING
        bool "Late microcode loading (DANGEROUS)"
        default n
-       depends on MICROCODE
+       depends on MICROCODE && SMP
        help
          Loading microcode late, when the system is up and executing instructions
          is a tricky business and should be avoided if possible. Just the sequence
          of synchronizing all cores and SMT threads is one fragile dance which does
          not guarantee that cores might not softlock after the loading. Therefore,
-         use this at your own risk. Late loading taints the kernel too.
+         use this at your own risk. Late loading taints the kernel unless the
+         microcode header indicates that it is safe for late loading via the
+         minimal revision check. This minimal revision check can be enforced on
+         the kernel command line with "microcode.minrev=Y".
+
+config MICROCODE_LATE_FORCE_MINREV
+       bool "Enforce late microcode loading minimal revision check"
+       default n
+       depends on MICROCODE_LATE_LOADING
+       help
+         To prevent that users load microcode late which modifies already
+         in use features, newer microcode patches have a minimum revision field
+         in the microcode header, which tells the kernel which minimum
+         revision must be active in the CPU to safely load that new microcode
+         late into the running system. If disabled the check will not
+         be enforced but the kernel will be tainted when the minimal
+         revision check fails.
+
+         This minimal revision check can also be controlled via the
+         "microcode.minrev" parameter on the kernel command line.
+
+         If unsure say Y.
 
 config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -1390,7 +1415,7 @@ config HIGHMEM4G
 
 config HIGHMEM64G
        bool "64GB"
-       depends on !M486SX && !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6
+       depends on X86_HAVE_PAE
        select X86_PAE
        help
          Select this if you have a 32-bit processor and more than 4
@@ -1447,7 +1472,7 @@ config HIGHMEM
 
 config X86_PAE
        bool "PAE (Physical Address Extension) Support"
-       depends on X86_32 && !HIGHMEM4G
+       depends on X86_32 && X86_HAVE_PAE
        select PHYS_ADDR_T_64BIT
        select SWIOTLB
        help
@@ -1534,6 +1559,7 @@ config NUMA
        depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
        default y if X86_BIGSMP
        select USE_PERCPU_NUMA_NODE_ID
+       select OF_NUMA if OF
        help
          Enable NUMA (Non-Uniform Memory Access) support.
 
@@ -1939,12 +1965,30 @@ config X86_USER_SHADOW_STACK
 
          If unsure, say N.
 
+config INTEL_TDX_HOST
+       bool "Intel Trust Domain Extensions (TDX) host support"
+       depends on CPU_SUP_INTEL
+       depends on X86_64
+       depends on KVM_INTEL
+       depends on X86_X2APIC
+       select ARCH_KEEP_MEMBLOCK
+       depends on CONTIG_ALLOC
+       depends on !KEXEC_CORE
+       depends on X86_MCE
+       help
+         Intel Trust Domain Extensions (TDX) protects guest VMs from malicious
+         host and certain physical attacks.  This option enables necessary TDX
+         support in the host kernel to run confidential VMs.
+
+         If unsure, say N.
+
 config EFI
        bool "EFI runtime service support"
        depends on ACPI
        select UCS2_STRING
        select EFI_RUNTIME_WRAPPERS
        select ARCH_USE_MEMREMAP_PROT
+       select EFI_RUNTIME_MAP if KEXEC_CORE
        help
          This enables the kernel to use EFI runtime services that are
          available (such as the EFI variable services).
@@ -2020,7 +2064,6 @@ config EFI_MAX_FAKE_MEM
 config EFI_RUNTIME_MAP
        bool "Export EFI runtime maps to sysfs" if EXPERT
        depends on EFI
-       default KEXEC_CORE
        help
          Export EFI runtime memory regions to /sys/firmware/efi/runtime-map.
          That memory map is required by the 2nd kernel to set up EFI virtual
@@ -2034,7 +2077,7 @@ config ARCH_SUPPORTS_KEXEC
        def_bool y
 
 config ARCH_SUPPORTS_KEXEC_FILE
-       def_bool X86_64 && CRYPTO && CRYPTO_SHA256
+       def_bool X86_64
 
 config ARCH_SELECTS_KEXEC_FILE
        def_bool y
@@ -2042,7 +2085,7 @@ config ARCH_SELECTS_KEXEC_FILE
        select HAVE_IMA_KEXEC if IMA
 
 config ARCH_SUPPORTS_KEXEC_PURGATORY
-       def_bool KEXEC_FILE
+       def_bool y
 
 config ARCH_SUPPORTS_KEXEC_SIG
        def_bool y
@@ -2062,6 +2105,9 @@ config ARCH_SUPPORTS_CRASH_DUMP
 config ARCH_SUPPORTS_CRASH_HOTPLUG
        def_bool y
 
+config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
+       def_bool CRASH_CORE
+
 config PHYSICAL_START
        hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
        default "0x1000000"
@@ -2966,6 +3012,15 @@ config IA32_EMULATION
          64-bit kernel. You should likely turn this on, unless you're
          100% sure that you don't have any 32-bit programs left.
 
+config IA32_EMULATION_DEFAULT_DISABLED
+       bool "IA32 emulation disabled by default"
+       default n
+       depends on IA32_EMULATION
+       help
+         Make IA32 emulation disabled by default. This prevents loading 32-bit
+         processes and access to 32-bit syscalls. If unsure, leave it to its
+         default value.
+
 config X86_X32_ABI
        bool "x32 ABI for 64-bit mode"
        depends on X86_64