]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
Merge branch 'linus' into x86/urgent
authorIngo Molnar <mingo@elte.hu>
Mon, 25 Oct 2010 17:38:43 +0000 (19:38 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 25 Oct 2010 17:38:52 +0000 (19:38 +0200)
Merge reason: We want to queue up a dependent fix.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
1  2 
arch/x86/Kconfig
arch/x86/kernel/reboot.c
arch/x86/xen/enlighten.c

diff --combined arch/x86/Kconfig
index 64e817ec7ff9495d815857c7e53b82e058c06e86,dfabfefc21c48981c456faa683108dd9b6b7a9a8..299fbc86f570ba2c39ff34b3711a6c0289b4cdd9
@@@ -25,14 -25,17 +25,17 @@@ config X8
        select HAVE_IDE
        select HAVE_OPROFILE
        select HAVE_PERF_EVENTS if (!M386 && !M486)
+       select HAVE_IRQ_WORK
        select HAVE_IOREMAP_PROT
        select HAVE_KPROBES
+       select HAVE_MEMBLOCK
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARCH_WANT_FRAME_POINTERS
        select HAVE_DMA_ATTRS
        select HAVE_KRETPROBES
        select HAVE_OPTPROBES
        select HAVE_FTRACE_MCOUNT_RECORD
+       select HAVE_C_RECORDMCOUNT
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FUNCTION_TRACER
        select HAVE_FUNCTION_GRAPH_TRACER
        select ANON_INODES
        select HAVE_ARCH_KMEMCHECK
        select HAVE_USER_RETURN_NOTIFIER
+       select HAVE_ARCH_JUMP_LABEL
+       select HAVE_TEXT_POKE_SMP
+       select HAVE_GENERIC_HARDIRQS
+       select HAVE_SPARSE_IRQ
+       select GENERIC_IRQ_PROBE
+       select GENERIC_PENDING_IRQ if SMP
  
  config INSTRUCTION_DECODER
        def_bool (KPROBES || PERF_EVENTS)
@@@ -193,27 -202,10 +202,10 @@@ config ARCH_SUPPORTS_OPTIMIZED_INLININ
  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
        def_bool y
  
- config HAVE_EARLY_RES
-       def_bool y
  config HAVE_INTEL_TXT
        def_bool y
        depends on EXPERIMENTAL && DMAR && ACPI
  
- # Use the generic interrupt handling code in kernel/irq/:
- config GENERIC_HARDIRQS
-       def_bool y
- config GENERIC_HARDIRQS_NO__DO_IRQ
-        def_bool y
- config GENERIC_IRQ_PROBE
-       def_bool y
- config GENERIC_PENDING_IRQ
-       def_bool y
-       depends on GENERIC_HARDIRQS && SMP
  config USE_GENERIC_SMP_HELPERS
        def_bool y
        depends on SMP
@@@ -296,23 -288,6 +288,6 @@@ config X86_X2API
  
          If you don't know what to do here, say N.
  
- config SPARSE_IRQ
-       bool "Support sparse irq numbering"
-       depends on PCI_MSI || HT_IRQ
-       ---help---
-         This enables support for sparse irqs. This is useful for distro
-         kernels that want to define a high CONFIG_NR_CPUS value but still
-         want to have low kernel memory footprint on smaller machines.
-         ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread
-           out the irq_desc[] array in a more NUMA-friendly way. )
-         If you don't know what to do here, say N.
- config NUMA_IRQ_DESC
-       def_bool y
-       depends on SPARSE_IRQ && NUMA
  config X86_MPPARSE
        bool "Enable MPS table" if ACPI
        default y
@@@ -372,7 -347,6 +347,7 @@@ endi
  
  config X86_VSMP
        bool "ScaleMP vSMP"
 +      select PARAVIRT_GUEST
        select PARAVIRT
        depends on X86_64 && PCI
        depends on X86_EXTENDED_PLATFORM
@@@ -518,25 -492,6 +493,6 @@@ if PARAVIRT_GUES
  
  source "arch/x86/xen/Kconfig"
  
- config VMI
-       bool "VMI Guest support (DEPRECATED)"
-       select PARAVIRT
-       depends on X86_32
-       ---help---
-         VMI provides a paravirtualized interface to the VMware ESX server
-         (it could be used by other hypervisors in theory too, but is not
-         at the moment), by linking the kernel to a GPL-ed ROM module
-         provided by the hypervisor.
-         As of September 2009, VMware has started a phased retirement
-         of this feature from VMware's products. Please see
-         feature-removal-schedule.txt for details.  If you are
-         planning to enable this option, please note that you cannot
-         live migrate a VMI enabled VM to a future VMware product,
-         which doesn't support VMI. So if you expect your kernel to
-         seamlessly migrate to newer VMware products, keep this
-         disabled.
  config KVM_CLOCK
        bool "KVM paravirtualized clock"
        select PARAVIRT
@@@ -591,16 -546,7 +547,7 @@@ config PARAVIRT_DEBU
          a paravirt_op is missing when it is called.
  
  config NO_BOOTMEM
-       default y
-       bool "Disable Bootmem code"
-       ---help---
-         Use early_res directly instead of bootmem before slab is ready.
-               - allocator (buddy) [generic]
-               - early allocator (bootmem) [generic]
-               - very early allocator (reserve_early*()) [x86]
-               - very very early allocator (early brk model) [x86]
-         So reduce one layer between early allocator to final allocator
+       def_bool y
  
  config MEMTEST
        bool "Memtest"
@@@ -671,7 -617,7 +618,7 @@@ config GART_IOMM
        bool "GART IOMMU support" if EMBEDDED
        default y
        select SWIOTLB
-       depends on X86_64 && PCI && K8_NB
+       depends on X86_64 && PCI && AMD_NB
        ---help---
          Support for full DMA access of devices with 32bit memory access only
          on systems with more than 3GB. This is usually needed for USB,
@@@ -796,6 -742,17 +743,17 @@@ config SCHED_M
          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
@@@ -1149,6 -1106,9 +1107,9 @@@ config X86_PA
  config ARCH_PHYS_ADDR_T_64BIT
        def_bool X86_64 || X86_PAE
  
+ config ARCH_DMA_ADDR_T_64BIT
+       def_bool X86_64 || HIGHMEM64G
  config DIRECT_GBPAGES
        bool "Enable 1GB pages for kernel pagetables" if EMBEDDED
        default y
@@@ -1327,25 -1287,34 +1288,34 @@@ config X86_BOOTPARAM_MEMORY_CORRUPTION_
          Set whether the default state of memory_corruption_check is
          on or off.
  
- config X86_RESERVE_LOW_64K
-       bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
-       default y
+ config X86_RESERVE_LOW
+       int "Amount of low memory, in kilobytes, to reserve for the BIOS"
+       default 64
+       range 4 640
        ---help---
-         Reserve the first 64K of physical RAM on BIOSes that are known
-         to potentially corrupt that memory range. A numbers of BIOSes are
-         known to utilize this area during suspend/resume, so it must not
-         be used by the kernel.
+         Specify the amount of low memory to reserve for the BIOS.
+         The first page contains BIOS data structures that the kernel
+         must not use, so that page must always be reserved.
+         By default we reserve the first 64K of physical RAM, as a
+         number of BIOSes are known to corrupt that memory range
+         during events such as suspend/resume or monitor cable
+         insertion, so it must not be used by the kernel.
  
-         Set this to N if you are absolutely sure that you trust the BIOS
-         to get all its memory reservations and usages right.
+         You can set this to 4 if you are absolutely sure that you
+         trust the BIOS to get all its memory reservations and usages
+         right.  If you know your BIOS have problems beyond the
+         default 64K area, you can set this to 640 to avoid using the
+         entire low memory range.
  
-         If you have doubts about the BIOS (e.g. suspend/resume does not
-         work or there's kernel crashes after certain hardware hotplug
-         events) and it's not AMI or Phoenix, then you might want to enable
-         X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
-         corruption patterns.
+         If you have doubts about the BIOS (e.g. suspend/resume does
+         not work or there's kernel crashes after certain hardware
+         hotplug events) then you might want to enable
+         X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
+         typical corruption patterns.
  
-         Say Y if unsure.
+         Leave this to the default value of 64 if you are unsure.
  
  config MATH_EMULATION
        bool
@@@ -1901,7 -1870,7 +1871,7 @@@ config PCI_GODIREC
        bool "Direct"
  
  config PCI_GOOLPC
-       bool "OLPC"
+       bool "OLPC XO-1"
        depends on OLPC
  
  config PCI_GOANY
@@@ -2062,14 -2031,21 +2032,21 @@@ config SCx200HR_TIME
  config OLPC
        bool "One Laptop Per Child support"
        select GPIOLIB
+       select OLPC_OPENFIRMWARE
        ---help---
          Add support for detecting the unique features of the OLPC
          XO hardware.
  
+ config OLPC_XO1
+       tristate "OLPC XO-1 support"
+       depends on OLPC && PCI
+       ---help---
+         Add support for non-essential features of the OLPC XO-1 laptop.
  config OLPC_OPENFIRMWARE
        bool "Support for OLPC's Open Firmware"
        depends on !X86_64 && !X86_PAE
-       default y if OLPC
+       default n
        help
          This option adds support for the implementation of Open Firmware
          that is used on the OLPC XO-1 Children's Machine.
  
  endif # X86_32
  
- config K8_NB
+ config AMD_NB
        def_bool y
        depends on CPU_SUP_AMD && PCI
  
@@@ -2126,6 -2102,10 +2103,10 @@@ config HAVE_ATOMIC_IOMA
        def_bool y
        depends on X86_32
  
+ config HAVE_TEXT_POKE_SMP
+       bool
+       select STOP_MACHINE if SMP
  source "net/Kconfig"
  
  source "drivers/Kconfig"
diff --combined arch/x86/kernel/reboot.c
index 76a0d715a0319f227f11650940460ade011a5480,f7f53dcd3e0a47eb1465ca80e301775a97979aa3..c495aa8d48159718ca1cbb6dec1ed1ca988039bc
@@@ -84,7 -84,7 +84,7 @@@ static int __init reboot_setup(char *st
                        }
                                /* we will leave sorting out the final value
                                   when we are ready to reboot, since we might not
-                                  have set up boot_cpu_id or smp_num_cpu */
+                                  have detected BSP APIC ID or smp_num_cpu */
                        break;
  #endif /* CONFIG_SMP */
  
@@@ -371,16 -371,10 +371,10 @@@ void machine_real_restart(const unsigne
        CMOS_WRITE(0x00, 0x8f);
        spin_unlock(&rtc_lock);
  
-       /* Remap the kernel at virtual address zero, as well as offset zero
-          from the kernel segment.  This assumes the kernel segment starts at
-          virtual address PAGE_OFFSET. */
-       memcpy(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY,
-               sizeof(swapper_pg_dir [0]) * KERNEL_PGD_PTRS);
        /*
-        * Use `swapper_pg_dir' as our page directory.
+        * Switch back to the initial page table.
         */
-       load_cr3(swapper_pg_dir);
+       load_cr3(initial_page_table);
  
        /* Write 0x1234 to absolute memory location 0x472.  The BIOS reads
           this on booting to tell it to "Bypass memory test (also warm
@@@ -641,7 -635,7 +635,7 @@@ void native_machine_shutdown(void
        /* O.K Now that I'm on the appropriate processor,
         * stop all of the others.
         */
 -      smp_send_stop();
 +      stop_other_cpus();
  #endif
  
        lapic_shutdown();
diff --combined arch/x86/xen/enlighten.c
index 44f80861382f82f466491de34a5951e1ce4663e0,63b83ceebd1a0984403af50aaefe29331d5f3132..3078dd5a806a657ff2ef7a28f827682b5fff3a7c
@@@ -30,6 -30,7 +30,7 @@@
  #include <linux/console.h>
  #include <linux/pci.h>
  #include <linux/gfp.h>
+ #include <linux/memblock.h>
  
  #include <xen/xen.h>
  #include <xen/interface/xen.h>
@@@ -1018,7 -1019,7 +1019,7 @@@ static void xen_reboot(int reason
        struct sched_shutdown r = { .reason = reason };
  
  #ifdef CONFIG_SMP
 -      smp_send_stop();
 +      stop_other_cpus();
  #endif
  
        if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
@@@ -1183,6 -1184,8 +1184,8 @@@ asmlinkage void __init xen_start_kernel
        local_irq_disable();
        early_boot_irqs_off();
  
+       memblock_init();
        xen_raw_console_write("mapping kernel into physical memory\n");
        pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);