KVM: MMU: fix dirty bit setting when removing write permissions
[safe/jmp/linux-2.6] / arch / x86 / Kconfig
index 1eb5997..e5790fe 100644 (file)
@@ -3,8 +3,8 @@ mainmenu "Linux Kernel Configuration for x86"
 
 # Select 32 or 64 bit
 config 64BIT
-       bool "64-bit kernel"
-       default n
+       bool "64-bit kernel" if ARCH = "x86"
+       default ARCH = "x86_64"
        help
          Say yes to build a 64-bit kernel - formerly known as x86_64
          Say no to build a 32-bit kernel - formerly known as i386
@@ -17,81 +17,77 @@ config X86_64
 
 ### Arch settings
 config X86
-       bool
-       default y
+       def_bool y
+       select HAVE_IDE
+       select HAVE_OPROFILE
+       select HAVE_KPROBES
+       select HAVE_KRETPROBES
+       select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
+       select HAVE_ARCH_KGDB if !X86_VOYAGER
+
+
+config GENERIC_LOCKBREAK
+       def_bool n
 
 config GENERIC_TIME
-       bool
-       default y
+       def_bool y
 
 config GENERIC_CMOS_UPDATE
-       bool
-       default y
+       def_bool y
 
 config CLOCKSOURCE_WATCHDOG
-       bool
-       default y
+       def_bool y
 
 config GENERIC_CLOCKEVENTS
-       bool
-       default y
+       def_bool y
 
 config GENERIC_CLOCKEVENTS_BROADCAST
-       bool
-       default y
+       def_bool y
        depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
 
 config LOCKDEP_SUPPORT
-       bool
-       default y
+       def_bool y
 
 config STACKTRACE_SUPPORT
-       bool
-       default y
+       def_bool y
 
-config SEMAPHORE_SLEEPERS
+config HAVE_LATENCYTOP_SUPPORT
+       def_bool y
+
+config FAST_CMPXCHG_LOCAL
        bool
        default y
 
 config MMU
-       bool
-       default y
+       def_bool y
 
 config ZONE_DMA
-       bool
-       default y
-
-config QUICKLIST
-       bool
-       default X86_32
+       def_bool y
 
 config SBUS
        bool
 
 config GENERIC_ISA_DMA
-       bool
-       default y
+       def_bool y
 
 config GENERIC_IOMAP
-       bool
-       default y
+       def_bool y
 
 config GENERIC_BUG
-       bool
-       default y
+       def_bool y
        depends on BUG
 
 config GENERIC_HWEIGHT
-       bool
-       default y
+       def_bool y
+
+config GENERIC_GPIO
+       def_bool n
 
 config ARCH_MAY_HAVE_PC_FDC
-       bool
-       default y
+       def_bool y
 
 config DMI
-       bool
-       default y
+       def_bool y
 
 config RWSEM_GENERIC_SPINLOCK
        def_bool !X86_XADD
@@ -105,6 +101,9 @@ config ARCH_HAS_ILOG2_U32
 config ARCH_HAS_ILOG2_U64
        def_bool n
 
+config ARCH_HAS_CPU_IDLE_WAIT
+       def_bool y
+
 config GENERIC_CALIBRATE_DELAY
        def_bool y
 
@@ -112,9 +111,22 @@ config GENERIC_TIME_VSYSCALL
        bool
        default X86_64
 
+config ARCH_HAS_CPU_RELAX
+       def_bool y
+
+config HAVE_SETUP_PER_CPU_AREA
+       def_bool X86_64 || (X86_SMP && !X86_VOYAGER)
 
+config HAVE_CPUMASK_OF_CPU_MAP
+       def_bool X86_64_SMP
 
+config ARCH_HIBERNATION_POSSIBLE
+       def_bool y
+       depends on !SMP || !X86_VOYAGER
 
+config ARCH_SUSPEND_POSSIBLE
+       def_bool y
+       depends on !X86_VOYAGER
 
 config ZONE_DMA32
        bool
@@ -127,6 +139,12 @@ config AUDIT_ARCH
        bool
        default X86_64
 
+config ARCH_SUPPORTS_AOUT
+       def_bool y
+
+config ARCH_SUPPORTS_OPTIMIZED_INLINING
+       def_bool y
+
 # Use the generic interrupt handling code in kernel/irq/:
 config GENERIC_HARDIRQS
        bool
@@ -143,12 +161,21 @@ config GENERIC_PENDING_IRQ
 
 config X86_SMP
        bool
-       depends on X86_32 && SMP && !X86_VOYAGER
+       depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64)
        default y
 
+config X86_32_SMP
+       def_bool y
+       depends on X86_32 && SMP
+
+config X86_64_SMP
+       def_bool y
+       depends on X86_64 && SMP
+
 config X86_HT
        bool
-       depends on SMP && !(X86_VISWS || X86_VOYAGER || MK8)
+       depends on SMP
+       depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || X86_64
        default y
 
 config X86_BIOS_REBOOT
@@ -158,7 +185,7 @@ config X86_BIOS_REBOOT
 
 config X86_TRAMPOLINE
        bool
-       depends on X86_SMP || (X86_VOYAGER && SMP)
+       depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP)
        default y
 
 config KTIME_SCALAR
@@ -191,8 +218,7 @@ 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 the <file:Documentation/smp.txt>,
-         <file:Documentation/i386/IO-APIC.txt>,
+         See also <file:Documentation/i386/IO-APIC.txt>,
          <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
          <http://www.tldp.org/docs.html#howto>.
 
@@ -219,8 +245,7 @@ config X86_ELAN
 
 config X86_VOYAGER
        bool "Voyager (NCR)"
-       depends on X86_32
-       select SMP if !BROKEN
+       depends on X86_32 && (SMP || BROKEN)
        help
          Voyager is an MCA-based 32-way capable SMP architecture proprietary
          to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
@@ -232,9 +257,8 @@ config X86_VOYAGER
 
 config X86_NUMAQ
        bool "NUMAQ (IBM/Sequent)"
-       select SMP
+       depends on SMP && X86_32
        select NUMA
-       depends on X86_32
        help
          This option is used for getting Linux to run on a (IBM/Sequent) NUMA
          multiquad box. This changes the way that processors are bootstrapped,
@@ -290,10 +314,24 @@ config X86_ES7000
          Only choose this option if you have such a system, otherwise you
          should say N here.
 
+config X86_RDC321X
+       bool "RDC R-321x SoC"
+       depends on X86_32
+       select M486
+       select X86_REBOOTFIXUPS
+       select GENERIC_GPIO
+       select LEDS_CLASS
+       select LEDS_GPIO
+       help
+         This option is needed for RDC R-321x system-on-chip, also known
+         as R-8610-(G).
+         If you don't have one of these chips, you should say N here.
+
 config X86_VSMP
        bool "Support for ScaleMP vSMP"
-       depends on X86_64 && PCI
-        help
+       select PARAVIRT
+       depends on X86_64
+       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
          if you have one of these machines.
@@ -301,8 +339,8 @@ config X86_VSMP
 endchoice
 
 config SCHED_NO_NO_OMIT_FRAME_POINTER
-       bool "Single-depth WCHAN output"
-       default y
+       def_bool y
+       prompt "Single-depth WCHAN output"
        depends on X86_32
        help
          Calculate simpler /proc/<PID>/wchan values. If this option
@@ -312,18 +350,8 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
 
          If in doubt, say "Y".
 
-config PARAVIRT
-       bool
-       depends on X86_32 && !(X86_VISWS || X86_VOYAGER)
-       help
-         This changes the kernel so it can modify itself when it is run
-         under a hypervisor, potentially improving performance significantly
-         over full virtualization.  However, when run without a hypervisor
-         the kernel is theoretically slower and slightly larger.
-
 menuconfig PARAVIRT_GUEST
        bool "Paravirtualized guest support"
-       depends on X86_32
        help
          Say Y here to get to see options related to running Linux under
          various hypervisors.  This option alone does not add any kernel code.
@@ -337,6 +365,7 @@ source "arch/x86/xen/Kconfig"
 config VMI
        bool "VMI Guest support"
        select PARAVIRT
+       depends on X86_32
        depends on !(X86_VISWS || X86_VOYAGER)
        help
          VMI provides a paravirtualized interface to the VMware ESX server
@@ -344,42 +373,93 @@ config VMI
          at the moment), by linking the kernel to a GPL-ed ROM module
          provided by the hypervisor.
 
+config KVM_CLOCK
+       bool "KVM paravirtualized clock"
+       select PARAVIRT
+       depends on !(X86_VISWS || X86_VOYAGER)
+       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"
+       select PARAVIRT
+       depends on !(X86_VISWS || X86_VOYAGER)
+       help
+        This option enables various optimizations for running under the KVM
+        hypervisor.
+
 source "arch/x86/lguest/Kconfig"
 
+config PARAVIRT
+       bool "Enable paravirtualization code"
+       depends on !(X86_VISWS || X86_VOYAGER)
+       help
+         This changes the kernel so it can modify itself when it is run
+         under a hypervisor, potentially improving performance significantly
+         over full virtualization.  However, when run without a hypervisor
+         the kernel is theoretically slower and slightly larger.
+
 endif
 
-config ACPI_SRAT
-       bool
+config MEMTEST_BOOTPARAM
+       bool "Memtest boot parameter"
+       depends on X86_64
        default y
+       help
+         This option adds a kernel parameter 'memtest', which allows memtest
+         to be disabled at boot.  If this option is selected, memtest
+         functionality can be disabled with memtest=0 on the kernel
+         command line.  The purpose of this option is to allow a single
+         kernel image to be distributed with memtest built in, but not
+         necessarily enabled.
+
+         If you are unsure how to answer this question, answer Y.
+
+config MEMTEST_BOOTPARAM_VALUE
+       int "Memtest boot parameter default value (0-4)"
+       depends on MEMTEST_BOOTPARAM
+       range 0 4
+       default 0
+       help
+         This option sets the default value for the kernel parameter
+         'memtest', which allows memtest to be disabled at boot.  If this
+         option is set to 0 (zero), the memtest kernel parameter will
+         default to 0, disabling memtest at bootup.  If this option is
+         set to 4, the memtest kernel parameter will default to 4,
+         enabling memtest at bootup, and use that as pattern number.
+
+         If you are unsure how to answer this question, answer 0.
+
+config ACPI_SRAT
+       def_bool y
        depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
        select ACPI_NUMA
 
 config HAVE_ARCH_PARSE_SRAT
-       bool
-       default y
-       depends on ACPI_SRAT
+       def_bool y
+       depends on ACPI_SRAT
 
 config X86_SUMMIT_NUMA
-       bool
-       default y
+       def_bool y
        depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH)
 
 config X86_CYCLONE_TIMER
-       bool
-       default y
+       def_bool y
        depends on X86_32 && X86_SUMMIT || X86_GENERICARCH
 
 config ES7000_CLUSTERED_APIC
-       bool
-       default y
+       def_bool y
        depends on SMP && X86_ES7000 && MPENTIUMIII
 
 source "arch/x86/Kconfig.cpu"
 
 config HPET_TIMER
-       bool
+       def_bool X86_64
        prompt "HPET Timer Support" if X86_32
-       default X86_64
        help
          Use the IA-PC HPET (High Precision Event Timer) to manage
          time in preference to the PIT and RTC, if a HPET is
@@ -397,9 +477,8 @@ config HPET_TIMER
          Choose N to continue using the legacy 8254 timer.
 
 config HPET_EMULATE_RTC
-       bool
-       depends on HPET_TIMER && RTC=y
-       default y
+       def_bool y
+       depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
 
 # Mark as embedded because too many people got it wrong.
 # The code disables itself when not needed.
@@ -439,8 +518,8 @@ config CALGARY_IOMMU
          If unsure, say Y.
 
 config CALGARY_IOMMU_ENABLED_BY_DEFAULT
-       bool "Should Calgary be enabled by default?"
-       default y
+       def_bool y
+       prompt "Should Calgary be enabled by default?"
        depends on CALGARY_IOMMU
        help
          Should Calgary be enabled by default? if you choose 'y', Calgary
@@ -449,6 +528,9 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
          Calgary anyway, pass 'iommu=calgary' on the kernel command line.
          If unsure, say Y.
 
+config IOMMU_HELPER
+       def_bool (CALGARY_IOMMU || GART_IOMMU)
+
 # need this always selected by IOMMU for the VIA workaround
 config SWIOTLB
        bool
@@ -476,7 +558,7 @@ config NR_CPUS
 
 config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
-       depends on (X86_64 && SMP) || (X86_32 && X86_HT)
+       depends on X86_HT
        help
          SMT scheduler support improves the CPU scheduler's decision making
          when dealing with Intel Pentium 4 chips with HyperThreading at a
@@ -484,9 +566,9 @@ config SCHED_SMT
          N here.
 
 config SCHED_MC
-       bool "Multi-core scheduler support"
-       depends on (X86_64 && SMP) || (X86_32 && X86_HT)
-       default y
+       def_bool y
+       prompt "Multi-core scheduler support"
+       depends on X86_HT
        help
          Multi-core scheduler support improves the CPU scheduler's decision
          making when dealing with multi-core CPU chips at a cost of slightly
@@ -520,19 +602,16 @@ config X86_UP_IOAPIC
          an IO-APIC, then the kernel will still run with no slowdown at all.
 
 config X86_LOCAL_APIC
-       bool
+       def_bool y
        depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH))
-       default y
 
 config X86_IO_APIC
-       bool
+       def_bool y
        depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH))
-       default y
 
 config X86_VISWS_APIC
-       bool
+       def_bool y
        depends on X86_32 && X86_VISWS
-       default y
 
 config X86_MCE
        bool "Machine Check Exception"
@@ -552,17 +631,17 @@ config X86_MCE
          the 386 and 486, so nearly everyone can say Y here.
 
 config X86_MCE_INTEL
-       bool "Intel MCE features"
+       def_bool y
+       prompt "Intel MCE features"
        depends on X86_64 && X86_MCE && X86_LOCAL_APIC
-       default y
        help
           Additional support for intel specific MCE features such as
           the thermal monitor.
 
 config X86_MCE_AMD
-       bool "AMD MCE features"
+       def_bool y
+       prompt "AMD MCE features"
        depends on X86_64 && X86_MCE && X86_LOCAL_APIC
-       default y
        help
           Additional support for AMD specific MCE features such as
           the DRAM Error Threshold.
@@ -615,7 +694,6 @@ config TOSHIBA
 
 config I8K
        tristate "Dell laptop support"
-       depends on X86_32
        ---help---
          This adds a driver to safely access the System Management Mode
          of the CPU on the Dell Inspiron 8000. The System Management Mode
@@ -635,9 +713,9 @@ config I8K
          Say N otherwise.
 
 config X86_REBOOTFIXUPS
-       bool "Enable X86 board specific fixups for reboot"
+       def_bool n
+       prompt "Enable X86 board specific fixups for reboot"
        depends on X86_32 && X86
-       default n
        ---help---
          This enables chipset and/or board specific fixups to be done
          in order to get reboot to work correctly. This is only needed on
@@ -646,7 +724,7 @@ config X86_REBOOTFIXUPS
          system.
 
          Currently, the only fixup is for the Geode machines using
-         CS5530A and CS5536 chipsets.
+         CS5530A and CS5536 chipsets and the RDC R-321x SoC.
 
          Say Y if you want to enable the fixup. Currently, it's safe to
          enable this option even if you don't need it.
@@ -670,9 +748,8 @@ config MICROCODE
          module will be called microcode.
 
 config MICROCODE_OLD_INTERFACE
-       bool
+       def_bool y
        depends on MICROCODE
-       default y
 
 config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -796,13 +873,12 @@ config PAGE_OFFSET
        depends on X86_32
 
 config HIGHMEM
-       bool
+       def_bool y
        depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
-       default y
 
 config X86_PAE
-       bool "PAE (Physical Address Extension) Support"
-       default n
+       def_bool n
+       prompt "PAE (Physical Address Extension) Support"
        depends on X86_32 && !HIGHMEM4G
        select RESOURCES_64BIT
        help
@@ -834,10 +910,10 @@ comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
        depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
 
 config K8_NUMA
-       bool "Old style AMD Opteron NUMA detection"
-       depends on X86_64 && NUMA && PCI
-       default y
-       help
+       def_bool y
+       prompt "Old style AMD Opteron NUMA detection"
+       depends on X86_64 && NUMA && PCI
+       help
         Enable K8 NUMA node topology detection.  You should say Y here if
         you have a multi processor AMD K8 system. This uses an old
         method to read the NUMA configuration directly from the builtin
@@ -845,13 +921,22 @@ config K8_NUMA
         instead, which also takes priority if both are compiled in.
 
 config X86_64_ACPI_NUMA
-       bool "ACPI NUMA detection"
+       def_bool y
+       prompt "ACPI NUMA detection"
        depends on X86_64 && NUMA && ACPI && PCI
        select ACPI_NUMA
-       default y
        help
          Enable ACPI SRAT based node topology detection.
 
+# Some NUMA nodes have memory ranges that span
+# other nodes.  Even though a pfn is valid and
+# between a node's start and end pfns, it may not
+# reside on that node.  See memmap_init_zone()
+# for details.
+config NODES_SPAN_OTHER_NODES
+       def_bool y
+       depends on X86_64_ACPI_NUMA
+
 config NUMA_EMU
        bool "NUMA emulation"
        depends on X86_64 && NUMA
@@ -861,53 +946,54 @@ config NUMA_EMU
          number of nodes. This is only useful for debugging.
 
 config NODES_SHIFT
-       int
+       int "Max num nodes shift(1-15)"
+       range 1 15  if X86_64
        default "6" if X86_64
        default "4" if X86_NUMAQ
        default "3"
        depends on NEED_MULTIPLE_NODES
 
 config HAVE_ARCH_BOOTMEM_NODE
-       bool
+       def_bool y
        depends on X86_32 && NUMA
-       default y
 
 config ARCH_HAVE_MEMORY_PRESENT
-       bool
+       def_bool y
        depends on X86_32 && DISCONTIGMEM
-       default y
 
 config NEED_NODE_MEMMAP_SIZE
-       bool
+       def_bool y
        depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
-       default y
 
 config HAVE_ARCH_ALLOC_REMAP
-       bool
+       def_bool y
        depends on X86_32 && NUMA
-       default y
 
 config ARCH_FLATMEM_ENABLE
        def_bool y
-       depends on (X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC) || (X86_64 && !NUMA)
+       depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA
 
 config ARCH_DISCONTIGMEM_ENABLE
        def_bool y
-       depends on NUMA
+       depends on NUMA && X86_32
 
 config ARCH_DISCONTIGMEM_DEFAULT
        def_bool y
-       depends on NUMA
+       depends on NUMA && X86_32
+
+config ARCH_SPARSEMEM_DEFAULT
+       def_bool y
+       depends on X86_64
 
 config ARCH_SPARSEMEM_ENABLE
        def_bool y
-       depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64))
+       depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC)
        select SPARSEMEM_STATIC if X86_32
        select SPARSEMEM_VMEMMAP_ENABLE if X86_64
 
 config ARCH_SELECT_MEMORY_MODEL
        def_bool y
-       depends on X86_32 && ARCH_SPARSEMEM_ENABLE
+       depends on ARCH_SPARSEMEM_ENABLE
 
 config ARCH_MEMORY_PROBE
        def_bool X86_64
@@ -984,43 +1070,48 @@ config MTRR
 
          See <file:Documentation/mtrr.txt> for more information.
 
+config X86_PAT
+       bool
+       prompt "x86 PAT support"
+       depends on MTRR
+       help
+         Use PAT attributes to setup page level cache control.
+
+         PATs are the modern equivalents of MTRRs and are much more
+         flexible than MTRRs.
+
+         Say N here if you see bootup problems (boot crash, boot hang,
+         spontaneous reboots) or a non-working video driver.
+
+         If unsure, say Y.
+
 config EFI
-       bool "Boot from EFI support"
-       depends on X86_32 && ACPI
-       default n
+       def_bool n
+       prompt "EFI runtime service support"
+       depends on ACPI
        ---help---
-       This enables the kernel to boot on EFI platforms using
-       system configuration information passed to it from the firmware.
-       This also enables the kernel to use any EFI runtime services that are
+       This enables the kernel to use EFI runtime services that are
        available (such as the EFI variable services).
 
-       This option is only useful on systems that have EFI firmware
-       and will result in a kernel image that is ~8k larger.  In addition,
-       you must use the latest ELILO loader available at
-       <http://elilo.sourceforge.net> in order to take advantage of
-       kernel initialization using EFI information (neither GRUB nor LILO know
-       anything about EFI).  However, even with this option, the resultant
-       kernel should continue to boot on existing non-EFI platforms.
+       This option is only useful on systems that have EFI firmware.
+       In addition, you should use the latest ELILO loader available
+       at <http://elilo.sourceforge.net> in order to take advantage
+       of EFI runtime services. However, even with this option, the
+       resultant kernel should continue to boot on existing non-EFI
+       platforms.
 
 config IRQBALANCE
-       bool "Enable kernel irq balancing"
+       def_bool y
+       prompt "Enable kernel irq balancing"
        depends on X86_32 && SMP && X86_IO_APIC
-       default y
        help
          The default yes will allow the kernel to do irq load balancing.
          Saying no will keep the kernel from doing irq load balancing.
 
-# turning this on wastes a bunch of space.
-# Summit needs it only when NUMA is on
-config BOOT_IOREMAP
-       bool
-       depends on X86_32 && (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
-       default y
-
 config SECCOMP
-       bool "Enable seccomp to safely compute untrusted bytecode"
+       def_bool y
+       prompt "Enable seccomp to safely compute untrusted bytecode"
        depends on PROC_FS
-       default y
        help
          This kernel feature is useful for number crunching applications
          that may need to compute untrusted bytecode during their
@@ -1036,7 +1127,7 @@ config SECCOMP
 
 config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
-       depends on X86_64 && EXPERIMENTAL
+       depends on X86_64 && EXPERIMENTAL && BROKEN
        help
          This option turns on the -fstack-protector GCC feature. This
          feature puts, at the beginning of critical functions, a canary
@@ -1062,6 +1153,7 @@ source kernel/Kconfig.hz
 
 config KEXEC
        bool "kexec system call"
+       depends on X86_64 || X86_BIOS_REBOOT
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
@@ -1187,11 +1279,11 @@ config HOTPLUG_CPU
          suspend.
 
 config COMPAT_VDSO
-       bool "Compat VDSO support"
-       default y
-       depends on X86_32
+       def_bool y
+       prompt "Compat VDSO support"
+       depends on X86_32 || IA32_EMULATION
        help
-         Map the VDSO to the predictable old-style address too.
+         Map the 32-bit VDSO to the predictable old-style address too.
        ---help---
          Say N here if you are running a sufficiently recent glibc
          version (2.3.3 or later), to remove the high-mapped
@@ -1205,30 +1297,26 @@ config ARCH_ENABLE_MEMORY_HOTPLUG
        def_bool y
        depends on X86_64 || (X86_32 && HIGHMEM)
 
-config MEMORY_HOTPLUG_RESERVE
-       def_bool X86_64
-       depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
-
 config HAVE_ARCH_EARLY_PFN_TO_NID
        def_bool X86_64
        depends on NUMA
 
-config OUT_OF_LINE_PFN_TO_PAGE
-       def_bool X86_64
-       depends on DISCONTIGMEM
-
 menu "Power management options"
        depends on !X86_VOYAGER
 
 config ARCH_HIBERNATION_HEADER
-       bool
+       def_bool y
        depends on X86_64 && HIBERNATION
-       default y
 
 source "kernel/power/Kconfig"
 
 source "drivers/acpi/Kconfig"
 
+config X86_APM_BOOT
+       bool
+       default y
+       depends on APM || APM_MODULE
+
 menuconfig APM
        tristate "APM (Advanced Power Management) BIOS support"
        depends on X86_32 && PM_SLEEP && !X86_VISWS
@@ -1247,7 +1335,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/pm.txt> and the
+         and more information, read <file:Documentation/power/pm.txt> and the
          Battery Powered Linux mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.
 
@@ -1367,9 +1455,9 @@ endmenu
 menu "Bus options (PCI etc.)"
 
 config PCI
-       bool "PCI support" if !X86_VISWS
+       bool "PCI support" if !X86_VISWS && !X86_VSMP
        depends on !X86_VOYAGER
-       default y if X86_VISWS
+       default y
        select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
        help
          Find out whether you have a PCI motherboard. PCI is the name of a
@@ -1377,11 +1465,6 @@ config PCI
          your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
          VESA. If you have PCI, say Y, otherwise N.
 
-         The PCI-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>, contains valuable
-         information about which PCI hardware does work under Linux and which
-         doesn't.
-
 choice
        prompt "PCI access mode"
        depends on X86_32 && PCI && !X86_VISWS
@@ -1416,25 +1499,21 @@ config PCI_GOANY
 endchoice
 
 config PCI_BIOS
-       bool
+       def_bool y
        depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
-       default y
 
 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
 config PCI_DIRECT
-       bool
+       def_bool y
        depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
-       default y
 
 config PCI_MMCONFIG
-       bool
+       def_bool y
        depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
-       default y
 
 config PCI_DOMAINS
-       bool
+       def_bool y
        depends on PCI
-       default y
 
 config PCI_MMCONFIG
        bool "Support mmconfig PCI config space access"
@@ -1451,9 +1530,9 @@ config DMAR
          remapping devices.
 
 config DMAR_GFX_WA
-       bool "Support for Graphics workaround"
+       def_bool y
+       prompt "Support for Graphics workaround"
        depends on DMAR
-       default y
        help
         Current Graphics drivers tend to use physical address
         for DMA and avoid using DMA APIs. Setting this config
@@ -1462,9 +1541,8 @@ config DMAR_GFX_WA
         to use physical addresses for DMA.
 
 config DMAR_FLOPPY_WA
-       bool
+       def_bool y
        depends on DMAR
-       default y
        help
         Floppy disk drivers are know to bypass DMA API calls
         thereby failing to work when IOMMU is enabled. This
@@ -1477,8 +1555,7 @@ source "drivers/pci/Kconfig"
 
 # x86_64 have no ISA slots, but do have ISA-style DMA.
 config ISA_DMA_API
-       bool
-       default y
+       def_bool y
 
 if X86_32
 
@@ -1544,9 +1621,9 @@ config SCx200HR_TIMER
          other workaround is idle=poll boot option.
 
 config GEODE_MFGPT_TIMER
-       bool "Geode Multi-Function General Purpose Timer (MFGPT) events"
+       def_bool y
+       prompt "Geode Multi-Function General Purpose Timer (MFGPT) events"
        depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
-       default y
        help
          This driver provides a clock event source based on the MFGPT
          timer(s) in the CS5535 and CS5536 companion chip for the geode.
@@ -1573,6 +1650,7 @@ source "fs/Kconfig.binfmt"
 config IA32_EMULATION
        bool "IA32 Emulation"
        depends on X86_64
+       select COMPAT_BINFMT_ELF
        help
          Include code to run 32-bit programs under a 64-bit kernel. You should
          likely turn this on, unless you're 100% sure that you don't have any
@@ -1580,23 +1658,21 @@ config IA32_EMULATION
 
 config IA32_AOUT
        tristate "IA32 a.out support"
-       depends on IA32_EMULATION
+       depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT
        help
          Support old a.out binaries in the 32bit emulation.
 
 config COMPAT
-       bool
+       def_bool y
        depends on IA32_EMULATION
-       default y
 
 config COMPAT_FOR_U64_ALIGNMENT
        def_bool COMPAT
        depends on X86_64
 
 config SYSVIPC_COMPAT
-       bool
+       def_bool y
        depends on X86_64 && COMPAT && SYSVIPC
-       default y
 
 endmenu
 
@@ -1609,12 +1685,12 @@ source "drivers/firmware/Kconfig"
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
 
 source "crypto/Kconfig"
 
+source "arch/x86/kvm/Kconfig"
+
 source "lib/Kconfig"