Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
[linux-3.10.git] / arch / x86 / Kconfig
index 9137057..9195fd8 100644 (file)
@@ -7,11 +7,15 @@ 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
 config X86
@@ -31,17 +35,19 @@ config X86
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARCH_WANT_FRAME_POINTERS
        select HAVE_DMA_ATTRS
+       select HAVE_DMA_CONTIGUOUS if !SWIOTLB
        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
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_FUNCTION_GRAPH_FP_TEST
        select HAVE_FUNCTION_TRACE_MCOUNT_TEST
-       select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
        select HAVE_SYSCALL_TRACEPOINTS
+       select SYSCTL_EXCEPTION_TRACE
        select HAVE_KVM
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_TRACEHOOK
@@ -59,9 +65,12 @@ 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
+       select HAVE_ALIGNED_STRUCT_PAGE if SLUB
+       select HAVE_CMPXCHG_LOCAL
        select HAVE_CMPXCHG_DOUBLE
        select HAVE_ARCH_KMEMCHECK
        select HAVE_USER_RETURN_NOTIFIER
@@ -69,6 +78,7 @@ config X86
        select HAVE_ARCH_JUMP_LABEL
        select HAVE_TEXT_POKE_SMP
        select HAVE_GENERIC_HARDIRQS
+       select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select SPARSE_IRQ
        select GENERIC_FIND_FIRST_BIT
        select GENERIC_IRQ_PROBE
@@ -77,14 +87,36 @@ config X86
        select GENERIC_CLOCKEVENTS_MIN_ADJUST
        select IRQ_FORCED_THREADING
        select USE_GENERIC_SMP_HELPERS if SMP
-       select HAVE_BPF_JIT if (X86_64 && NET)
+       select HAVE_BPF_JIT if X86_64
+       select HAVE_ARCH_TRANSPARENT_HUGEPAGE
        select CLKEVT_I8253
        select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select GENERIC_IOMAP
        select DCACHE_WORD_ACCESS
+       select GENERIC_SMP_IDLE_THREAD
+       select ARCH_WANT_IPC_PARSE_VERSION if X86_32
+       select HAVE_ARCH_SECCOMP_FILTER
+       select BUILDTIME_EXTABLE_SORT
+       select GENERIC_CMOS_UPDATE
+       select CLOCKSOURCE_WATCHDOG
+       select GENERIC_CLOCKEVENTS
+       select ARCH_CLOCKSOURCE_DATA if X86_64
+       select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
+       select GENERIC_TIME_VSYSCALL if X86_64
+       select KTIME_SCALAR if X86_32
+       select GENERIC_STRNCPY_FROM_USER
+       select GENERIC_STRNLEN_USER
+       select HAVE_CONTEXT_TRACKING if X86_64
+       select HAVE_IRQ_TIME_ACCOUNTING
+       select GENERIC_KERNEL_THREAD
+       select GENERIC_KERNEL_EXECVE
+       select MODULES_USE_ELF_REL if X86_32
+       select MODULES_USE_ELF_RELA if X86_64
+       select CLONE_BACKWARDS if X86_32
 
 config INSTRUCTION_DECODER
-       def_bool (KPROBES || PERF_EVENTS)
+       def_bool y
+       depends on KPROBES || PERF_EVENTS || UPROBES
 
 config OUTPUT_FORMAT
        string
@@ -96,23 +128,6 @@ config ARCH_DEFCONFIG
        default "arch/x86/configs/i386_defconfig" if X86_32
        default "arch/x86/configs/x86_64_defconfig" if X86_64
 
-config GENERIC_CMOS_UPDATE
-       def_bool y
-
-config CLOCKSOURCE_WATCHDOG
-       def_bool y
-
-config GENERIC_CLOCKEVENTS
-       def_bool y
-
-config ARCH_CLOCKSOURCE_DATA
-       def_bool y
-       depends on X86_64
-
-config GENERIC_CLOCKEVENTS_BROADCAST
-       def_bool y
-       depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
-
 config LOCKDEP_SUPPORT
        def_bool y
 
@@ -129,13 +144,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,24 +169,15 @@ config GENERIC_GPIO
        bool
 
 config ARCH_MAY_HAVE_PC_FDC
-       def_bool ISA_DMA_API
-
-config RWSEM_GENERIC_SPINLOCK
-       def_bool !X86_XADD
+       def_bool y
+       depends on ISA_DMA_API
 
 config RWSEM_XCHGADD_ALGORITHM
-       def_bool X86_XADD
-
-config ARCH_HAS_CPU_IDLE_WAIT
        def_bool y
 
 config GENERIC_CALIBRATE_DELAY
        def_bool y
 
-config GENERIC_TIME_VSYSCALL
-       bool
-       default X86_64
-
 config ARCH_HAS_CPU_RELAX
        def_bool y
 
@@ -236,13 +244,13 @@ config ARCH_HWEIGHT_CFLAGS
        default "-fcall-saved-ecx -fcall-saved-edx" if X86_32
        default "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64
 
-config KTIME_SCALAR
-       def_bool X86_32
-
 config ARCH_CPU_PROBE_RELEASE
        def_bool y
        depends on HOTPLUG_CPU
 
+config ARCH_SUPPORTS_UPROBES
+       def_bool y
+
 source "init/Kconfig"
 source "kernel/Kconfig.freezer"
 
@@ -258,8 +266,6 @@ config ZONE_DMA
 
          If unsure, say Y.
 
-source "kernel/time/Kconfig"
-
 config SMP
        bool "Symmetric multi-processing support"
        ---help---
@@ -300,7 +306,7 @@ config X86_X2APIC
          If you don't know what to do here, say N.
 
 config X86_MPPARSE
-       bool "Enable MPS table" if ACPI
+       bool "Enable MPS table" if ACPI || SFI
        default y
        depends on X86_LOCAL_APIC
        ---help---
@@ -328,6 +334,7 @@ config X86_EXTENDED_PLATFORM
                NUMAQ (IBM/Sequent)
                RDC R-321x SoC
                SGI 320/540 (Visual Workstation)
+               STA2X11-based (e.g. Northville)
                Summit/EXA (IBM x440)
                Unisys ES7000 IA32 series
                Moorestown MID devices
@@ -374,6 +381,7 @@ config X86_VSMP
        select PARAVIRT
        depends on X86_64 && PCI
        depends on X86_EXTENDED_PLATFORM
+       depends on SMP
        ---help---
          Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
          supposed to run on these EM64T-based machines.  Only choose this option
@@ -460,10 +468,10 @@ config X86_32_NON_STANDARD
        depends on X86_32 && SMP
        depends on X86_EXTENDED_PLATFORM
        ---help---
-         This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
-         subarchitectures.  It is intended for a generic binary kernel.
-         if you select them all, kernel will probe it one by one. and will
-         fallback to default.
+         This option compiles in the NUMAQ, Summit, bigsmp, ES7000,
+         STA2X11, default subarchitectures.  It is intended for a generic
+         binary kernel. If you select them all, kernel will probe it
+         one by one and will fallback to default.
 
 # Alphabetically sorted list of Non standard 32 bit platforms
 
@@ -503,6 +511,22 @@ config X86_VISWS
          A kernel compiled for the Visual Workstation will run on general
          PCs as well. See <file:Documentation/sgi-visws.txt> for details.
 
+config STA2X11
+       bool "STA2X11 Companion Chip Support"
+       depends on X86_32_NON_STANDARD && PCI
+       select X86_DEV_DMA_OPS
+       select X86_DMA_REMAP
+       select SWIOTLB
+       select MFD_STA2X11
+       select ARCH_REQUIRE_GPIOLIB
+       default n
+       ---help---
+         This adds support for boards based on the STA2X11 IO-Hub,
+         a.k.a. "ConneXt". The chip is used in place of the standard
+         PC chipset, so all "standard" peripherals are missing. If this
+         option is selected the kernel will still be able to boot on
+         standard PC machines.
+
 config X86_SUMMIT
        bool "Summit/EXA (IBM x440)"
        depends on X86_32_NON_STANDARD
@@ -566,23 +590,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"
 
@@ -739,13 +758,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"
@@ -789,17 +809,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
@@ -864,6 +873,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).
@@ -975,25 +985,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
@@ -1006,7 +1016,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---
@@ -1086,7 +1096,7 @@ config HIGHMEM4G
 
 config HIGHMEM64G
        bool "64GB"
-       depends on !M386 && !M486
+       depends on !M486
        select X86_PAE
        ---help---
          Select this if you have a 32-bit processor and more than 4
@@ -1152,10 +1162,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
@@ -1239,10 +1251,6 @@ config NODES_SHIFT
          Specify the maximum number of NUMA Nodes available on the target
          system.  Increases memory reserved to accommodate various tables.
 
-config HAVE_ARCH_BOOTMEM
-       def_bool y
-       depends on X86_32 && NUMA
-
 config HAVE_ARCH_ALLOC_REMAP
        def_bool y
        depends on X86_32 && NUMA
@@ -1282,8 +1290,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
@@ -1484,6 +1492,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
@@ -1505,6 +1524,8 @@ config EFI_STUB
           This kernel feature allows a bzImage to be loaded directly
          by EFI firmware without the use of a bootloader.
 
+         See Documentation/x86/efi-stub.txt for more information.
+
 config SECCOMP
        def_bool y
        prompt "Enable seccomp to safely compute untrusted bytecode"
@@ -1522,7 +1543,7 @@ config SECCOMP
          If unsure, say Y. Only embedded should say N here.
 
 config CC_STACKPROTECTOR
-       bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
+       bool "Enable -fstack-protector buffer overflow detection"
        ---help---
          This option turns on the -fstack-protector GCC feature. This
          feature puts, at the beginning of functions, a canary value on
@@ -1673,6 +1694,50 @@ config HOTPLUG_CPU
            automatically on SMP systems. )
          Say N if you want to disable CPU hotplug.
 
+config BOOTPARAM_HOTPLUG_CPU0
+       bool "Set default setting of cpu0_hotpluggable"
+       default n
+       depends on HOTPLUG_CPU && EXPERIMENTAL
+       ---help---
+         Set whether default state of cpu0_hotpluggable is on or off.
+
+         Say Y here to enable CPU0 hotplug by default. If this switch
+         is turned on, there is no need to give cpu0_hotplug kernel
+         parameter and the CPU0 hotplug feature is enabled by default.
+
+         Please note: there are two known CPU0 dependencies if you want
+         to enable the CPU0 hotplug feature either by this switch or by
+         cpu0_hotplug kernel parameter.
+
+         First, resume from hibernate or suspend always starts from CPU0.
+         So hibernate and suspend are prevented if CPU0 is offline.
+
+         Second dependency is PIC interrupts always go to CPU0. CPU0 can not
+         offline if any interrupt can not migrate out of CPU0. There may
+         be other CPU0 dependencies.
+
+         Please make sure the dependencies are under your control before
+         you enable this feature.
+
+         Say N if you don't want to enable CPU0 hotplug feature by default.
+         You still can enable the CPU0 hotplug feature at boot by kernel
+         parameter cpu0_hotplug.
+
+config DEBUG_HOTPLUG_CPU0
+       def_bool n
+       prompt "Debug CPU0 hotplug"
+       depends on HOTPLUG_CPU && EXPERIMENTAL
+       ---help---
+         Enabling this option offlines CPU0 (if CPU0 can be offlined) as
+         soon as possible and boots up userspace with CPU0 offlined. User
+         can online CPU0 back after boot time.
+
+         To debug CPU0 hotplug, you need to enable CPU0 offline/online
+         feature by either turning on CONFIG_BOOTPARAM_HOTPLUG_CPU0 during
+         compilation or giving cpu0_hotplug kernel parameter at boot.
+
+         If unsure, say N.
+
 config COMPAT_VDSO
        def_bool y
        prompt "Compat VDSO support"
@@ -1970,7 +2035,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
@@ -2152,6 +2216,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
@@ -2181,18 +2246,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
 
@@ -2205,6 +2270,14 @@ config HAVE_TEXT_POKE_SMP
        bool
        select STOP_MACHINE if SMP
 
+config X86_DEV_DMA_OPS
+       bool
+       depends on X86_64 || STA2X11
+
+config X86_DMA_REMAP
+       bool
+       depends on STA2X11
+
 source "net/Kconfig"
 
 source "drivers/Kconfig"