Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
[firefly-linux-kernel-4.4.55.git] / arch / x86 / Kconfig
index 45edcba41e39fea6d5a8fcb5853ceb43e130f2e3..70071b19eb989b7926ac0f08c8f6d2431356c919 100644 (file)
@@ -7,11 +7,14 @@ config 64BIT
          Say no to build a 32-bit kernel - formerly known as i386
 
 config X86_32
-       def_bool !64BIT
+       def_bool y
+       depends on !64BIT
        select CLKSRC_I8253
+       select HAVE_UID16
 
 config X86_64
-       def_bool 64BIT
+       def_bool y
+       depends on 64BIT
        select X86_DEV_DMA_OPS
 
 ### Arch settings
@@ -36,6 +39,7 @@ config X86
        select HAVE_KRETPROBES
        select HAVE_OPTPROBES
        select HAVE_FTRACE_MCOUNT_RECORD
+       select HAVE_FENTRY if X86_64
        select HAVE_C_RECORDMCOUNT
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FUNCTION_TRACER
@@ -43,6 +47,7 @@ config X86
        select HAVE_FUNCTION_GRAPH_FP_TEST
        select HAVE_FUNCTION_TRACE_MCOUNT_TEST
        select HAVE_SYSCALL_TRACEPOINTS
+       select SYSCTL_EXCEPTION_TRACE
        select HAVE_KVM
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_TRACEHOOK
@@ -60,6 +65,9 @@ config X86
        select HAVE_MIXED_BREAKPOINTS_REGS
        select PERF_EVENTS
        select HAVE_PERF_EVENTS_NMI
+       select HAVE_PERF_REGS
+       select HAVE_PERF_USER_STACK_DUMP
+       select HAVE_DEBUG_KMEMLEAK
        select ANON_INODES
        select HAVE_ALIGNED_STRUCT_PAGE if SLUB && !M386
        select HAVE_CMPXCHG_LOCAL if !M386
@@ -80,6 +88,7 @@ config X86
        select IRQ_FORCED_THREADING
        select USE_GENERIC_SMP_HELPERS if SMP
        select HAVE_BPF_JIT if X86_64
+       select HAVE_ARCH_TRANSPARENT_HUGEPAGE
        select CLKEVT_I8253
        select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select GENERIC_IOMAP
@@ -97,11 +106,14 @@ config X86
        select KTIME_SCALAR if X86_32
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
+       select HAVE_RCU_USER_QS if X86_64
+       select HAVE_IRQ_TIME_ACCOUNTING
        select GENERIC_KERNEL_THREAD
        select GENERIC_KERNEL_EXECVE
 
 config INSTRUCTION_DECODER
-       def_bool (KPROBES || PERF_EVENTS || UPROBES)
+       def_bool y
+       depends on KPROBES || PERF_EVENTS || UPROBES
 
 config OUTPUT_FORMAT
        string
@@ -129,13 +141,15 @@ config SBUS
        bool
 
 config NEED_DMA_MAP_STATE
-       def_bool (X86_64 || INTEL_IOMMU || DMA_API_DEBUG)
+       def_bool y
+       depends on X86_64 || INTEL_IOMMU || DMA_API_DEBUG
 
 config NEED_SG_DMA_LENGTH
        def_bool y
 
 config GENERIC_ISA_DMA
-       def_bool ISA_DMA_API
+       def_bool y
+       depends on ISA_DMA_API
 
 config GENERIC_BUG
        def_bool y
@@ -152,13 +166,16 @@ config GENERIC_GPIO
        bool
 
 config ARCH_MAY_HAVE_PC_FDC
-       def_bool ISA_DMA_API
+       def_bool y
+       depends on ISA_DMA_API
 
 config RWSEM_GENERIC_SPINLOCK
-       def_bool !X86_XADD
+       def_bool y
+       depends on !X86_XADD
 
 config RWSEM_XCHGADD_ALGORITHM
-       def_bool X86_XADD
+       def_bool y
+       depends on X86_XADD
 
 config GENERIC_CALIBRATE_DELAY
        def_bool y
@@ -575,23 +592,18 @@ config PARAVIRT_TIME_ACCOUNTING
 
 source "arch/x86/xen/Kconfig"
 
-config KVM_CLOCK
-       bool "KVM paravirtualized clock"
-       select PARAVIRT
-       select PARAVIRT_CLOCK
-       ---help---
-         Turning on this option will allow you to run a paravirtualized clock
-         when running over the KVM hypervisor. Instead of relying on a PIT
-         (or probably other) emulation by the underlying device model, the host
-         provides the guest with timing infrastructure such as time of day, and
-         system time
-
 config KVM_GUEST
-       bool "KVM Guest support"
+       bool "KVM Guest support (including kvmclock)"
+       select PARAVIRT
        select PARAVIRT
+       select PARAVIRT_CLOCK
+       default y if PARAVIRT_GUEST
        ---help---
          This option enables various optimizations for running under the KVM
-         hypervisor.
+         hypervisor. It includes a paravirtualized clock, so that instead
+         of relying on a PIT (or probably other) emulation by the
+         underlying device model, the host provides the guest with
+         timing infrastructure such as time of day, and system time
 
 source "arch/x86/lguest/Kconfig"
 
@@ -748,13 +760,14 @@ config SWIOTLB
        def_bool y if X86_64
        ---help---
          Support for software bounce buffers used on x86-64 systems
-         which don't have a hardware IOMMU (e.g. the current generation
-         of Intel's x86-64 CPUs). Using this PCI devices which can only
-         access 32-bits of memory can be used on systems with more than
-         3 GB of memory. If unsure, say Y.
+         which don't have a hardware IOMMU. Using this PCI devices
+         which can only access 32-bits of memory can be used on systems
+         with more than 3 GB of memory.
+         If unsure, say Y.
 
 config IOMMU_HELPER
-       def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
+       def_bool y
+       depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU
 
 config MAXSMP
        bool "Enable Maximum number of SMP Processors and NUMA Nodes"
@@ -798,17 +811,6 @@ config SCHED_MC
          making when dealing with multi-core CPU chips at a cost of slightly
          increased overhead in some places. If unsure say N here.
 
-config IRQ_TIME_ACCOUNTING
-       bool "Fine granularity task level IRQ time accounting"
-       default n
-       ---help---
-         Select this option to enable fine granularity task irq time
-         accounting. This is done by reading a timestamp on each
-         transitions between softirq and hardirq state, so there can be a
-         small performance impact.
-
-         If in doubt, say N here.
-
 source "kernel/Kconfig.preempt"
 
 config X86_UP_APIC
@@ -873,6 +875,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
 
 config X86_MCE
        bool "Machine Check / overheating reporting"
+       default y
        ---help---
          Machine Check support allows the processor to notify the
          kernel if it detects a problem (e.g. overheating, data corruption).
@@ -984,25 +987,25 @@ config X86_REBOOTFIXUPS
          Say N otherwise.
 
 config MICROCODE
-       tristate "/dev/cpu/microcode - microcode support"
+       tristate "CPU microcode loading support"
        select FW_LOADER
        ---help---
+
          If you say Y here, you will be able to update the microcode on
          certain Intel and AMD processors. The Intel support is for the
-         IA32 family, e.g. Pentium Pro, Pentium II, Pentium III,
-         Pentium 4, Xeon etc. The AMD support is for family 0x10 and
-         0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra.
-         You will obviously need the actual microcode binary data itself
-         which is not shipped with the Linux kernel.
+         IA32 family, e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4,
+         Xeon etc. The AMD support is for families 0x10 and later. You will
+         obviously need the actual microcode binary data itself which is not
+         shipped with the Linux kernel.
 
          This option selects the general module only, you need to select
          at least one vendor specific module as well.
 
-         To compile this driver as a module, choose M here: the
-         module will be called microcode.
+         To compile this driver as a module, choose M here: the module
+         will be called microcode.
 
 config MICROCODE_INTEL
-       bool "Intel microcode patch loading support"
+       bool "Intel microcode loading support"
        depends on MICROCODE
        default MICROCODE
        select FW_LOADER
@@ -1015,7 +1018,7 @@ config MICROCODE_INTEL
          <http://www.urbanmyth.org/microcode/>.
 
 config MICROCODE_AMD
-       bool "AMD microcode patch loading support"
+       bool "AMD microcode loading support"
        depends on MICROCODE
        select FW_LOADER
        ---help---
@@ -1161,10 +1164,12 @@ config X86_PAE
          consumes more pagetable space per process.
 
 config ARCH_PHYS_ADDR_T_64BIT
-       def_bool X86_64 || X86_PAE
+       def_bool y
+       depends on X86_64 || X86_PAE
 
 config ARCH_DMA_ADDR_T_64BIT
-       def_bool X86_64 || HIGHMEM64G
+       def_bool y
+       depends on X86_64 || HIGHMEM64G
 
 config DIRECT_GBPAGES
        bool "Enable 1GB pages for kernel pagetables" if EXPERT
@@ -1287,8 +1292,8 @@ config ARCH_SELECT_MEMORY_MODEL
        depends on ARCH_SPARSEMEM_ENABLE
 
 config ARCH_MEMORY_PROBE
-       def_bool X86_64
-       depends on MEMORY_HOTPLUG
+       def_bool y
+       depends on X86_64 && MEMORY_HOTPLUG
 
 config ARCH_PROC_KCORE_TEXT
        def_bool y
@@ -1489,6 +1494,17 @@ config ARCH_RANDOM
          If supported, this is a high bandwidth, cryptographically
          secure hardware random number generator.
 
+config X86_SMAP
+       def_bool y
+       prompt "Supervisor Mode Access Prevention" if EXPERT
+       ---help---
+         Supervisor Mode Access Prevention (SMAP) is a security
+         feature in newer Intel processors.  There is a small
+         performance cost if this enabled and turned on; there is
+         also a small increase in the kernel size if this is enabled.
+
+         If unsure, say Y.
+
 config EFI
        bool "EFI runtime service support"
        depends on ACPI
@@ -1977,7 +1993,6 @@ config PCI_MMCONFIG
 
 config PCI_CNB20LE_QUIRK
        bool "Read CNB20LE Host Bridge Windows" if EXPERT
-       default n
        depends on PCI && EXPERIMENTAL
        help
          Read the PCI windows out of the CNB20LE host bridge. This allows
@@ -2159,6 +2174,7 @@ config IA32_EMULATION
        bool "IA32 Emulation"
        depends on X86_64
        select COMPAT_BINFMT_ELF
+       select HAVE_UID16
        ---help---
          Include code to run legacy 32-bit programs under a
          64-bit kernel. You should likely turn this on, unless you're
@@ -2188,18 +2204,18 @@ config COMPAT
        depends on IA32_EMULATION || X86_X32
        select ARCH_WANT_OLD_COMPAT_IPC
 
+if COMPAT
 config COMPAT_FOR_U64_ALIGNMENT
-       def_bool COMPAT
-       depends on X86_64
+       def_bool y
 
 config SYSVIPC_COMPAT
        def_bool y
-       depends on COMPAT && SYSVIPC
+       depends on SYSVIPC
 
 config KEYS_COMPAT
-       bool
-       depends on COMPAT && KEYS
-       default y
+       def_bool y
+       depends on KEYS
+endif
 
 endmenu