OSDN Git Service

Merge branch 'linus' into sfi-release
authorLen Brown <len.brown@intel.com>
Sat, 19 Sep 2009 04:11:26 +0000 (00:11 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 19 Sep 2009 04:11:26 +0000 (00:11 -0400)
Conflicts:
arch/x86/kernel/setup.c
drivers/acpi/power.c
init/main.c

Signed-off-by: Len Brown <len.brown@intel.com>
1  2 
MAINTAINERS
arch/x86/Kconfig
arch/x86/kernel/Makefile
arch/x86/kernel/setup.c
drivers/acpi/blacklist.c
drivers/acpi/pci_root.c
drivers/acpi/power.c
drivers/acpi/video.c
drivers/pci/dmar.c
include/acpi/acpi_bus.h
init/main.c

diff --combined MAINTAINERS
@@@ -439,7 -439,7 +439,7 @@@ F: drivers/hwmon/ams
  AMSO1100 RNIC DRIVER
  M:    Tom Tucker <tom@opengridcomputing.com>
  M:    Steve Wise <swise@opengridcomputing.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  S:    Maintained
  F:    drivers/infiniband/hw/amso1100/
  
@@@ -534,10 -534,30 +534,30 @@@ L:      linux-arm-kernel@lists.arm.linux.org
  W:    http://maxim.org.za/at91_26.html
  S:    Maintained
  
+ ARM/BCMRING ARM ARCHITECTURE
+ M:    Leo Chen <leochen@broadcom.com>
+ M:    Scott Branden <sbranden@broadcom.com>
+ L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+ S:    Maintained
+ F:    arch/arm/mach-bcmring
+ ARM/BCMRING MTD NAND DRIVER
+ M:    Leo Chen <leochen@broadcom.com>
+ M:    Scott Branden <sbranden@broadcom.com>
+ L:    linux-mtd@lists.infradead.org
+ S:    Maintained
+ F:    drivers/mtd/nand/bcm_umi_nand.c
+ F:    drivers/mtd/nand/bcm_umi_bch.c
+ F:    drivers/mtd/nand/bcm_umi_hamming.c
+ F:    drivers/mtd/nand/nand_bcm_umi.h
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
- M:    Lennert Buytenhek <kernel@wantstofly.org>
+ M:    Hartley Sweeten <hsweeten@visionengravers.com>
+ M:    Ryan Mallon <ryan@bluewatersys.com>
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
+ F:    arch/arm/mach-ep93xx/
+ F:    arch/arm/mach-ep93xx/include/mach/
  
  ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
@@@ -685,6 -705,18 +705,18 @@@ ARM/MAGICIAN MACHINE SUPPOR
  M:    Philipp Zabel <philipp.zabel@gmail.com>
  S:    Maintained
  
+ ARM/Marvell Loki/Kirkwood/MV78xx0/Orion SOC support
+ M:    Lennert Buytenhek <buytenh@marvell.com>
+ M:    Nicolas Pitre <nico@marvell.com>
+ L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+ T:    git git://git.marvell.com/orion
+ S:    Maintained
+ F:    arch/arm/mach-loki/
+ F:    arch/arm/mach-kirkwood/
+ F:    arch/arm/mach-mv78xx0/
+ F:    arch/arm/mach-orion5x/
+ F:    arch/arm/plat-orion/
  ARM/MIOA701 MACHINE SUPPORT
  M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
@@@ -876,6 -908,7 +908,7 @@@ M: "Luis R. Rodriguez" <lrodriguez@athe
  M:    Bob Copeland <me@bobcopeland.com>
  L:    linux-wireless@vger.kernel.org
  L:    ath5k-devel@lists.ath5k.org
+ W:    http://wireless.kernel.org/en/users/Drivers/ath5k
  S:    Maintained
  F:    drivers/net/wireless/ath/ath5k/
  
@@@ -887,6 -920,7 +920,7 @@@ M: Vasanthakumar Thiagarajan <vasanth@a
  M:    Senthil Balasubramanian <senthilkumar@atheros.com>
  L:    linux-wireless@vger.kernel.org
  L:    ath9k-devel@lists.ath9k.org
+ W:    http://wireless.kernel.org/en/users/Drivers/ath9k
  S:    Supported
  F:    drivers/net/wireless/ath/ath9k/
  
@@@ -897,6 -931,12 +931,12 @@@ W:       http://wireless.kernel.org/en/users/
  S:    Maintained
  F:    drivers/net/wireless/ath/ar9170/
  
+ ATK0110 HWMON DRIVER
+ M:    Luca Tettamanti <kronos.it@gmail.com>
+ L:    lm-sensors@lm-sensors.org
+ S:    Maintained
+ F:    drivers/hwmon/asus_atk0110.c
  ATI_REMOTE2 DRIVER
  M:    Ville Syrjala <syrjala@sci.fi>
  S:    Maintained
@@@ -1494,7 -1534,7 +1534,7 @@@ F:      drivers/net/cxgb3
  
  CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
  M:    Steve Wise <swise@chelsio.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  W:    http://www.openfabrics.org
  S:    Supported
  F:    drivers/infiniband/hw/cxgb3/
@@@ -1868,7 -1908,7 +1908,7 @@@ F:      fs/efs
  EHCA (IBM GX bus InfiniBand adapter) DRIVER
  M:    Hoang-Nam Nguyen <hnguyen@de.ibm.com>
  M:    Christoph Raisch <raisch@de.ibm.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  S:    Supported
  F:    drivers/infiniband/hw/ehca/
  
@@@ -1933,7 -1973,6 +1973,6 @@@ F:      fs/ext2
  F:    include/linux/ext2*
  
  EXT3 FILE SYSTEM
- M:    Stephen Tweedie <sct@redhat.com>
  M:    Andrew Morton <akpm@linux-foundation.org>
  M:    Andreas Dilger <adilger@sun.com>
  L:    linux-ext4@vger.kernel.org
@@@ -2118,13 -2157,16 +2157,16 @@@ F:   Documentation/filesystems/caching
  F:    fs/fscache/
  F:    include/linux/fscache*.h
  
- FTRACE
+ TRACING
  M:    Steven Rostedt <rostedt@goodmis.org>
+ M:    Frederic Weisbecker <fweisbec@gmail.com>
+ M:    Ingo Molnar <mingo@redhat.com>
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git tracing/core
  S:    Maintained
  F:    Documentation/trace/ftrace.txt
  F:    arch/*/*/*/ftrace.h
  F:    arch/*/kernel/ftrace.c
- F:    include/*/ftrace.h
+ F:    include/*/ftrace.h include/trace/ include/linux/trace*.h
  F:    kernel/trace/
  
  FUJITSU FR-V (FRV) PORT
@@@ -2184,6 -2226,13 +2226,13 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    include/asm-generic
  
+ GENERIC UIO DRIVER FOR PCI DEVICES
+ M:    Michael S. Tsirkin <mst@redhat.com>
+ L:    kvm@vger.kernel.org
+ L:    linux-kernel@vger.kernel.org
+ S:    Supported
+ F:    drivers/uio/uio_pci_generic.c
  GFS2 FILE SYSTEM
  M:    Steven Whitehouse <swhiteho@redhat.com>
  L:    cluster-devel@redhat.com
@@@ -2239,8 -2288,7 +2288,7 @@@ S:      Maintaine
  F:    drivers/media/video/gspca/pac207.c
  
  GSPCA SN9C20X SUBDRIVER
- P:    Brian Johnson
- M:    brijohn@gmail.com
+ M:    Brian Johnson <brijohn@gmail.com>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
  S:    Maintained
@@@ -2553,7 -2601,7 +2601,7 @@@ INFINIBAND SUBSYSTE
  M:    Roland Dreier <rolandd@cisco.com>
  M:    Sean Hefty <sean.hefty@intel.com>
  M:    Hal Rosenstock <hal.rosenstock@gmail.com>
- L:    general@lists.openfabrics.org (moderated for non-subscribers)
+ L:    linux-rdma@vger.kernel.org
  W:    http://www.openib.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git
  S:    Supported
@@@ -2661,25 -2709,21 +2709,21 @@@ F:   drivers/net/ixgbe
  
  INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
  M:    Zhu Yi <yi.zhu@intel.com>
- M:    James Ketrenos <jketreno@linux.intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
- L:    ipw2100-devel@lists.sourceforge.net
- W:    http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
  W:    http://ipw2100.sourceforge.net
- S:    Supported
+ S:    Odd Fixes
  F:    Documentation/networking/README.ipw2100
  F:    drivers/net/wireless/ipw2x00/ipw2100.*
  
  INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
  M:    Zhu Yi <yi.zhu@intel.com>
- M:    James Ketrenos <jketreno@linux.intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
- L:    ipw2100-devel@lists.sourceforge.net
- W:    http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
  W:    http://ipw2200.sourceforge.net
- S:    Supported
+ S:    Odd Fixes
  F:    Documentation/networking/README.ipw2200
  F:    drivers/net/wireless/ipw2x00/ipw2200.*
  
@@@ -2696,8 -2740,8 +2740,8 @@@ F:      include/linux/wimax/i2400m.
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Zhu Yi <yi.zhu@intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
- L:    ipw3945-devel@lists.sourceforge.net
  W:    http://intellinuxwireless.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git
  S:    Supported
@@@ -2730,7 -2774,7 +2774,7 @@@ F:      drivers/net/ipg.
  
  IPATH DRIVER
  M:    Ralph Campbell <infinipath@qlogic.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  T:    git git://git.qlogic.com/ipath-linux-2.6
  S:    Supported
  F:    drivers/infiniband/hw/ipath/
@@@ -2856,8 -2900,8 +2900,8 @@@ F:      fs/jffs2
  F:    include/linux/jffs2.h
  
  JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
- M:    Stephen Tweedie <sct@redhat.com>
  M:    Andrew Morton <akpm@linux-foundation.org>
+ M:    Jan Kara <jack@suse.cz>
  L:    linux-ext4@vger.kernel.org
  S:    Maintained
  F:    fs/jbd*/
@@@ -2929,6 -2973,7 +2973,7 @@@ F:      include/linux/sunrpc
  
  KERNEL VIRTUAL MACHINE (KVM)
  M:    Avi Kivity <avi@redhat.com>
+ M:    Marcelo Tosatti <mtosatti@redhat.com>
  L:    kvm@vger.kernel.org
  W:    http://kvm.qumranet.com
  S:    Supported
@@@ -3280,8 -3325,14 +3325,14 @@@ S:    Supporte
  F:    drivers/net/mv643xx_eth.*
  F:    include/linux/mv643xx.h
  
+ MARVELL MWL8K WIRELESS DRIVER
+ M:    Lennert Buytenhek <buytenh@marvell.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/wireless/mwl8k.c
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
- M:    Nicolas Pitre <nico@cam.org>
+ M:    Nicolas Pitre <nico@fluxnic.net>
  S:    Maintained
  
  MARVELL YUKON / SYSKONNECT DRIVER
@@@ -3486,7 -3537,7 +3537,7 @@@ F:      drivers/scsi/NCR_D700.
  NETEFFECT IWARP RNIC DRIVER (IW_NES)
  M:    Faisal Latif <faisal.latif@intel.com>
  M:    Chien Tung <chien.tin.tung@intel.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  W:    http://www.neteffect.com
  S:    Supported
  F:    drivers/infiniband/hw/nes/
@@@ -3592,9 -3643,12 +3643,12 @@@ M:    "John W. Linville" <linville@tuxdriv
  L:    linux-wireless@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
  S:    Maintained
+ F:    net/mac80211/
+ F:    net/rfkill/
  F:    net/wireless/
  F:    include/net/ieee80211*
  F:    include/linux/wireless.h
+ F:    drivers/net/wireless/
  
  NETWORKING DRIVERS
  L:    netdev@vger.kernel.org
@@@ -3970,6 -4024,14 +4024,14 @@@ S:    Maintaine
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
  
+ PMC SIERRA MaxRAID DRIVER
+ P:    Anil Ravindranath
+ M:    anil_ravindranath@pmc-sierra.com
+ L:    linux-scsi@vger.kernel.org
+ W:    http://www.pmc-sierra.com/
+ S:    Supported
+ F:    drivers/scsi/pmcraid.*
  POSIX CLOCKS and TIMERS
  M:    Thomas Gleixner <tglx@linutronix.de>
  S:    Supported
@@@ -4300,7 -4362,7 +4362,7 @@@ L:      linux-wireless@vger.kernel.or
  W:    http://linuxwireless.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
  S:    Maintained
- F:    drivers/net/wireless/rtl818*
+ F:    drivers/net/wireless/rtl818x/rtl8180*
  
  RTL8187 WIRELESS DRIVER
  M:    Herton Ronaldo Krzesinski <herton@mandriva.com.br>
@@@ -4392,6 -4454,14 +4454,14 @@@ S:    Maintaine
  F:    kernel/sched*
  F:    include/linux/sched.h
  
+ SCORE ARCHITECTURE
+ P:    Chen Liqin
+ M:    liqin.chen@sunplusct.com
+ P:    Lennox Wu
+ M:    lennox.wu@sunplusct.com
+ W:    http://www.sunplusct.com
+ S:    Supported
  SCSI CDROM DRIVER
  M:    Jens Axboe <axboe@kernel.dk>
  L:    linux-scsi@vger.kernel.org
@@@ -4408,7 -4478,7 +4478,7 @@@ F:      drivers/scsi/sg.
  F:    include/scsi/sg.h
  
  SCSI SUBSYSTEM
- M:    "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
+ M:    "James E.J. Bottomley" <James.Bottomley@suse.de>
  L:    linux-scsi@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git
@@@ -4527,9 -4597,10 +4597,10 @@@ S:    Supporte
  F:    drivers/net/benet/
  
  SFC NETWORK DRIVER
- P:    Steve Hodgson
- P:    Ben Hutchings
- M:    Robert Stonehouse <linux-net-drivers@solarflare.com>
+ M:    Solarflare linux maintainers <linux-net-drivers@solarflare.com>
+ M:    Steve Hodgson <shodgson@solarflare.com>
+ M:    Ben Hutchings <bhutchings@solarflare.com>
+ L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/sfc/
  
@@@ -4575,18 -4646,6 +4646,18 @@@ L:    linux-pci@vger.kernel.or
  S:    Supported
  F:    drivers/pci/hotplug/shpchp*
  
 +SIMPLE FIRMWARE INTERFACE (SFI)
 +P:    Len Brown
 +M:    lenb@kernel.org
 +L:    sfi-devel@simplefirmware.org
 +W:    http://simplefirmware.org/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6.git
 +S:    Supported
 +F:    arch/x86/kernel/*sfi*
 +F:    drivers/sfi/
 +F:    include/linux/sfi*.h
 +
 +
  SIMTEC EB110ATX (Chalice CATS)
  P:    Ben Dooks
  M:    Vincent Sanders <support@simtec.co.uk>
@@@ -4602,6 -4661,12 +4673,12 @@@ F:    arch/arm/mach-s3c2410
  F:    drivers/*/*s3c2410*
  F:    drivers/*/*/*s3c2410*
  
+ TI DAVINCI MACHINE SUPPORT
+ P:    Kevin Hilman
+ M:    davinci-linux-open-source@linux.davincidsp.com
+ S:    Supported
+ F:    arch/arm/mach-davinci
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -4653,7 -4718,7 +4730,7 @@@ F:      include/linux/sl?b*.
  F:    mm/sl?b.c
  
  SMC91x ETHERNET DRIVER
- M:    Nicolas Pitre <nico@cam.org>
+ M:    Nicolas Pitre <nico@fluxnic.net>
  S:    Maintained
  F:    drivers/net/smc91x.*
  
@@@ -5591,6 -5656,24 +5668,24 @@@ M:    Miloslav Trmac <mitr@volny.cz
  S:    Maintained
  F:    drivers/input/misc/wistron_btns.c
  
+ WL1251 WIRELESS DRIVER
+ P:    Kalle Valo
+ M:    kalle.valo@nokia.com
+ L:    linux-wireless@vger.kernel.org
+ W:    http://wireless.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
+ S:    Maintained
+ F:    drivers/net/wireless/wl12xx/*
+ X:    drivers/net/wireless/wl12xx/wl1271*
+ WL1271 WIRELESS DRIVER
+ M:    Luciano Coelho <luciano.coelho@nokia.com>
+ L:    linux-wireless@vger.kernel.org
+ W:    http://wireless.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
+ S:    Maintained
+ F:    drivers/net/wireless/wl12xx/wl1271*
  WL3501 WIRELESS PCMCIA CARD DRIVER
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  L:    linux-wireless@vger.kernel.org
@@@ -5608,6 -5691,26 +5703,26 @@@ S:    Supporte
  F:    drivers/input/touchscreen/*wm97*
  F:    include/linux/wm97xx.h
  
+ WOLFSON MICROELECTRONICS PMIC DRIVERS
+ P:    Mark Brown
+ M:    broonie@opensource.wolfsonmicro.com
+ L:    linux-kernel@vger.kernel.org
+ T:    git git://opensource.wolfsonmicro.com/linux-2.6-audioplus
+ W:    http://opensource.wolfsonmicro.com/node/8
+ S:    Supported
+ F:    drivers/leds/leds-wm83*.c
+ F:    drivers/mfd/wm8*.c
+ F:    drivers/power/wm83*.c
+ F:    drivers/rtc/rtc-wm83*.c
+ F:    drivers/regulator/wm8*.c
+ F:    drivers/video/backlight/wm83*_bl.c
+ F:    drivers/watchdog/wm83*_wdt.c
+ F:    include/linux/mfd/wm831x/
+ F:    include/linux/mfd/wm8350/
+ F:    include/linux/mfd/wm8400/
+ F:    sound/soc/codecs/wm8350.c
+ F:    sound/soc/codecs/wm8400.c
  X.25 NETWORK LAYER
  M:    Henner Eisen <eis@baty.hanse.de>
  L:    linux-x25@vger.kernel.org
@@@ -5640,7 -5743,7 +5755,7 @@@ F:      include/xen
  
  XFS FILESYSTEM
  P:    Silicon Graphics Inc
- M:    Felix Blyakher <felixb@sgi.com>
+ M:    Alex Elder <aelder@sgi.com>
  M:    xfs-masters@oss.sgi.com
  L:    xfs@oss.sgi.com
  W:    http://oss.sgi.com/projects/xfs
diff --combined arch/x86/Kconfig
@@@ -38,7 -38,7 +38,7 @@@ config X8
        select HAVE_FUNCTION_GRAPH_FP_TEST
        select HAVE_FUNCTION_TRACE_MCOUNT_TEST
        select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
-       select HAVE_FTRACE_SYSCALLS
+       select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_KVM
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_TRACEHOOK
@@@ -150,7 -150,10 +150,10 @@@ config ARCH_HAS_CACHE_LINE_SIZ
  config HAVE_SETUP_PER_CPU_AREA
        def_bool y
  
- config HAVE_DYNAMIC_PER_CPU_AREA
+ config NEED_PER_CPU_EMBED_FIRST_CHUNK
+       def_bool y
+ config NEED_PER_CPU_PAGE_FIRST_CHUNK
        def_bool y
  
  config HAVE_CPUMASK_OF_CPU_MAP
@@@ -179,6 -182,10 +182,10 @@@ config ARCH_SUPPORTS_OPTIMIZED_INLININ
  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
        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
        bool
@@@ -318,6 -325,7 +325,7 @@@ config X86_EXTENDED_PLATFOR
                SGI 320/540 (Visual Workstation)
                Summit/EXA (IBM x440)
                Unisys ES7000 IA32 series
+               Moorestown MID devices
  
          If you have one of these systems, or if you want to build a
          generic distribution kernel, say Y here - otherwise say N.
@@@ -377,6 -385,18 +385,18 @@@ config X86_ELA
  
          If unsure, choose "PC-compatible" instead.
  
+ config X86_MRST
+        bool "Moorestown MID platform"
+       depends on X86_32
+       depends on X86_EXTENDED_PLATFORM
+       ---help---
+         Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin
+         Internet Device(MID) platform. Moorestown consists of two chips:
+         Lincroft (CPU core, graphics, and memory controller) and Langwell IOH.
+         Unlike standard x86 PCs, Moorestown does not have many legacy devices
+         nor standard legacy replacement devices/features. e.g. Moorestown does
+         not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
  config X86_RDC321X
        bool "RDC R-321x SoC"
        depends on X86_32
@@@ -586,7 -606,6 +606,6 @@@ config GART_IOMM
        bool "GART IOMMU support" if EMBEDDED
        default y
        select SWIOTLB
-       select AGP
        depends on X86_64 && PCI
        ---help---
          Support for full DMA access of devices with 32bit memory access only
@@@ -777,41 -796,17 +796,17 @@@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQ
          increased on these systems.
  
  config X86_MCE
-       bool "Machine Check Exception"
+       bool "Machine Check / overheating reporting"
        ---help---
-         Machine Check Exception support allows the processor to notify the
-         kernel if it detects a problem (e.g. overheating, component failure).
+         Machine Check support allows the processor to notify the
+         kernel if it detects a problem (e.g. overheating, data corruption).
          The action the kernel takes depends on the severity of the problem,
-         ranging from a warning message on the console, to halting the machine.
-         Your processor must be a Pentium or newer to support this - check the
-         flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
-         have a design flaw which leads to false MCE events - hence MCE is
-         disabled on all P5 processors, unless explicitly enabled with "mce"
-         as a boot argument.  Similarly, if MCE is built in and creates a
-         problem on some new non-standard machine, you can boot with "nomce"
-         to disable it.  MCE support simply ignores non-MCE processors like
-         the 386 and 486, so nearly everyone can say Y here.
- config X86_OLD_MCE
-       depends on X86_32 && X86_MCE
-       bool "Use legacy machine check code (will go away)"
-       default n
-       select X86_ANCIENT_MCE
-       ---help---
-         Use the old i386 machine check code. This is merely intended for
-         testing in a transition period. Try this if you run into any machine
-         check related software problems, but report the problem to
-         linux-kernel.  When in doubt say no.
- config X86_NEW_MCE
-       depends on X86_MCE
-       bool
-       default y if (!X86_OLD_MCE && X86_32) || X86_64
+         ranging from warning messages to halting the machine.
  
  config X86_MCE_INTEL
        def_bool y
        prompt "Intel MCE features"
-       depends on X86_NEW_MCE && X86_LOCAL_APIC
+       depends on X86_MCE && X86_LOCAL_APIC
        ---help---
           Additional support for intel specific MCE features such as
           the thermal monitor.
  config X86_MCE_AMD
        def_bool y
        prompt "AMD MCE features"
-       depends on X86_NEW_MCE && X86_LOCAL_APIC
+       depends on X86_MCE && X86_LOCAL_APIC
        ---help---
           Additional support for AMD specific MCE features such as
           the DRAM Error Threshold.
  
  config X86_ANCIENT_MCE
        def_bool n
-       depends on X86_32
+       depends on X86_32 && X86_MCE
        prompt "Support for old Pentium 5 / WinChip machine checks"
        ---help---
          Include support for machine check handling on old Pentium 5 or WinChip
@@@ -839,36 -834,16 +834,16 @@@ config X86_MCE_THRESHOL
        default y
  
  config X86_MCE_INJECT
-       depends on X86_NEW_MCE
+       depends on X86_MCE
        tristate "Machine check injector support"
        ---help---
          Provide support for injecting machine checks for testing purposes.
          If you don't know what a machine check is and you don't do kernel
          QA it is safe to say n.
  
- config X86_MCE_NONFATAL
-       tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
-       depends on X86_OLD_MCE
-       ---help---
-         Enabling this feature starts a timer that triggers every 5 seconds which
-         will look at the machine check registers to see if anything happened.
-         Non-fatal problems automatically get corrected (but still logged).
-         Disable this if you don't want to see these messages.
-         Seeing the messages this option prints out may be indicative of dying
-         or out-of-spec (ie, overclocked) hardware.
-         This option only does something on certain CPUs.
-         (AMD Athlon/Duron and Intel Pentium 4)
- config X86_MCE_P4THERMAL
-       bool "check for P4 thermal throttling interrupt."
-       depends on X86_OLD_MCE && X86_MCE && (X86_UP_APIC || SMP)
-       ---help---
-         Enabling this feature will cause a message to be printed when the P4
-         enters thermal throttling.
  config X86_THERMAL_VECTOR
        def_bool y
-       depends on X86_MCE_P4THERMAL || X86_MCE_INTEL
+       depends on X86_MCE_INTEL
  
  config VM86
        bool "Enable VM86 support" if EMBEDDED
@@@ -1414,6 -1389,10 +1389,10 @@@ config X86_PA
  
          If unsure, say Y.
  
+ config ARCH_USES_PG_UNCACHED
+       def_bool y
+       depends on X86_PAT
  config EFI
        bool "EFI runtime service support"
        depends on ACPI
@@@ -1683,8 -1662,6 +1662,8 @@@ source "kernel/power/Kconfig
  
  source "drivers/acpi/Kconfig"
  
 +source "drivers/sfi/Kconfig"
 +
  config X86_APM_BOOT
        bool
        default y
@@@ -1880,7 -1857,7 +1859,7 @@@ config PCI_DIREC
  
  config PCI_MMCONFIG
        def_bool y
 -      depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
 +      depends on X86_32 && PCI && (ACPI || SFI) && (PCI_GOMMCONFIG || PCI_GOANY)
  
  config PCI_OLPC
        def_bool y
diff --combined arch/x86/kernel/Makefile
@@@ -31,8 -31,8 +31,8 @@@ GCOV_PROFILE_paravirt.o               := 
  
  obj-y                 := process_$(BITS).o signal.o entry_$(BITS).o
  obj-y                 += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
- obj-y                 += time_$(BITS).o ioport.o ldt.o dumpstack.o
- obj-y                 += setup.o i8259.o irqinit.o
+ obj-y                 += time.o ioport.o ldt.o dumpstack.o
+ obj-y                 += setup.o x86_init.o i8259.o irqinit.o
  obj-$(CONFIG_X86_VISWS)       += visws_quirks.o
  obj-$(CONFIG_X86_32)  += probe_roms_32.o
  obj-$(CONFIG_X86_32)  += sys_i386_32.o i386_ksyms_32.o
@@@ -52,10 -52,10 +52,11 @@@ obj-$(CONFIG_X86_DS_SELFTEST)              += ds_se
  obj-$(CONFIG_X86_32)          += tls.o
  obj-$(CONFIG_IA32_EMULATION)  += tls.o
  obj-y                         += step.o
+ obj-$(CONFIG_INTEL_TXT)               += tboot.o
  obj-$(CONFIG_STACKTRACE)      += stacktrace.o
  obj-y                         += cpu/
  obj-y                         += acpi/
 +obj-$(CONFIG_SFI)             += sfi.o
  obj-y                         += reboot.o
  obj-$(CONFIG_MCA)             += mca_32.o
  obj-$(CONFIG_X86_MSR)         += msr.o
@@@ -105,6 -105,7 +106,7 @@@ obj-$(CONFIG_SCx200)               += scx200.
  scx200-y                      += scx200_32.o
  
  obj-$(CONFIG_OLPC)            += olpc.o
+ obj-$(CONFIG_X86_MRST)                += mrst.o
  
  microcode-y                           := microcode_core.o
  microcode-$(CONFIG_MICROCODE_INTEL)   += microcode_intel.o
diff --combined arch/x86/kernel/setup.c
@@@ -27,7 -27,6 +27,7 @@@
  #include <linux/screen_info.h>
  #include <linux/ioport.h>
  #include <linux/acpi.h>
 +#include <linux/sfi.h>
  #include <linux/apm_bios.h>
  #include <linux/initrd.h>
  #include <linux/bootmem.h>
@@@ -67,6 -66,7 +67,7 @@@
  
  #include <linux/percpu.h>
  #include <linux/crash_dump.h>
+ #include <linux/tboot.h>
  
  #include <video/edid.h>
  
  #include <asm/numa_64.h>
  #endif
  
- #ifndef ARCH_SETUP
- #define ARCH_SETUP
- #endif
  /*
   * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries.
   * The direct mapping extends to max_pfn_mapped, so that we can directly access
@@@ -134,9 -130,9 +131,9 @@@ int default_cpu_present_to_apicid(int m
        return __default_cpu_present_to_apicid(mps_cpu);
  }
  
- int default_check_phys_apicid_present(int boot_cpu_physical_apicid)
+ int default_check_phys_apicid_present(int phys_apicid)
  {
-       return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
+       return __default_check_phys_apicid_present(phys_apicid);
  }
  #endif
  
@@@ -172,13 -168,6 +169,6 @@@ static struct resource bss_resource = 
  
  
  #ifdef CONFIG_X86_32
- static struct resource video_ram_resource = {
-       .name   = "Video RAM area",
-       .start  = 0xa0000,
-       .end    = 0xbffff,
-       .flags  = IORESOURCE_BUSY | IORESOURCE_MEM
- };
  /* cpu data as detected by the assembly code in head.S */
  struct cpuinfo_x86 new_cpu_data __cpuinitdata = {0, 0, 0, 0, -1, 1, 0, 0, -1};
  /* common cpu data for all cpus */
@@@ -606,7 -595,7 +596,7 @@@ static struct resource standard_io_reso
                .flags = IORESOURCE_BUSY | IORESOURCE_IO }
  };
  
static void __init reserve_standard_io_resources(void)
+ void __init reserve_standard_io_resources(void)
  {
        int i;
  
@@@ -638,10 -627,6 +628,6 @@@ static int __init setup_elfcorehdr(cha
  early_param("elfcorehdr", setup_elfcorehdr);
  #endif
  
- static struct x86_quirks default_x86_quirks __initdata;
- struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
  #ifdef CONFIG_X86_RESERVE_LOW_64K
  static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
  {
@@@ -712,6 -697,21 +698,21 @@@ void __init setup_arch(char **cmdline_p
        printk(KERN_INFO "Command line: %s\n", boot_command_line);
  #endif
  
+       strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
+       *cmdline_p = command_line;
+ #ifdef CONFIG_X86_64
+       /*
+        * Must call this twice: Once just to detect whether hardware doesn't
+        * support NX (so that the early EHCI debug console setup can safely
+        * call set_fixmap(), and then again after parsing early parameters to
+        * honor the respective command line option.
+        */
+       check_efer();
+ #endif
+       parse_early_param();
        /* VMI may relocate the fixmap; do this before touching ioremap area */
        vmi_init();
  
        }
  #endif
  
-       ARCH_SETUP
+       x86_init.oem.arch_setup();
  
        setup_memory_map();
        parse_setup_data();
  #endif
  #endif
  
-       strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
-       *cmdline_p = command_line;
-       parse_early_param();
  #ifdef CONFIG_X86_64
        check_efer();
  #endif
         * VMware detection requires dmi to be available, so this
         * needs to be done after dmi_scan_machine, for the BP.
         */
-       init_hypervisor(&boot_cpu_data);
+       init_hypervisor_platform();
  
- #ifdef CONFIG_X86_32
-       probe_roms();
- #endif
+       x86_init.resources.probe_roms();
  
        /* after parse_early_param, so could debug it */
        insert_resource(&iomem_resource, &code_resource);
        kvmclock_init();
  #endif
  
-       paravirt_pagetable_setup_start(swapper_pg_dir);
+       x86_init.paging.pagetable_setup_start(swapper_pg_dir);
        paging_init();
-       paravirt_pagetable_setup_done(swapper_pg_dir);
-       paravirt_post_allocator_init();
+       x86_init.paging.pagetable_setup_done(swapper_pg_dir);
+       tboot_probe();
  
  #ifdef CONFIG_X86_64
        map_vsyscall();
         * Read APIC and some other early information from ACPI tables.
         */
        acpi_boot_init();
 +
 +      sfi_init();
  
- #if defined(CONFIG_X86_MPPARSE) || defined(CONFIG_X86_VISWS)
        /*
         * get boot-time SMP configuration:
         */
        if (smp_found_config)
                get_smp_config();
- #endif
  
        prefill_possible_map();
  
        e820_reserve_resources();
        e820_mark_nosave_regions(max_low_pfn);
  
- #ifdef CONFIG_X86_32
-       request_resource(&iomem_resource, &video_ram_resource);
- #endif
-       reserve_standard_io_resources();
+       x86_init.resources.reserve_resources();
  
        e820_setup_gap();
  
        conswitchp = &dummy_con;
  #endif
  #endif
+       x86_init.oem.banner();
  }
  
  #ifdef CONFIG_X86_32
  
- /**
-  * x86_quirk_intr_init - post gate setup interrupt initialisation
-  *
-  * Description:
-  *    Fill in any interrupts that may have been left out by the general
-  *    init_IRQ() routine.  interrupts having to do with the machine rather
-  *    than the devices on the I/O bus (like APIC interrupts in intel MP
-  *    systems) are started here.
-  **/
- void __init x86_quirk_intr_init(void)
- {
-       if (x86_quirks->arch_intr_init) {
-               if (x86_quirks->arch_intr_init())
-                       return;
-       }
- }
- /**
-  * x86_quirk_trap_init - initialise system specific traps
-  *
-  * Description:
-  *    Called as the final act of trap_init().  Used in VISWS to initialise
-  *    the various board specific APIC traps.
-  **/
- void __init x86_quirk_trap_init(void)
- {
-       if (x86_quirks->arch_trap_init) {
-               if (x86_quirks->arch_trap_init())
-                       return;
-       }
- }
- static struct irqaction irq0  = {
-       .handler = timer_interrupt,
-       .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL | IRQF_TIMER,
-       .name = "timer"
+ static struct resource video_ram_resource = {
+       .name   = "Video RAM area",
+       .start  = 0xa0000,
+       .end    = 0xbffff,
+       .flags  = IORESOURCE_BUSY | IORESOURCE_MEM
  };
  
- /**
-  * x86_quirk_pre_time_init - do any specific initialisations before.
-  *
-  **/
- void __init x86_quirk_pre_time_init(void)
+ void __init i386_reserve_resources(void)
  {
-       if (x86_quirks->arch_pre_time_init)
-               x86_quirks->arch_pre_time_init();
+       request_resource(&iomem_resource, &video_ram_resource);
+       reserve_standard_io_resources();
  }
  
- /**
-  * x86_quirk_time_init - do any specific initialisations for the system timer.
-  *
-  * Description:
-  *    Must plug the system timer interrupt source at HZ into the IRQ listed
-  *    in irq_vectors.h:TIMER_IRQ
-  **/
- void __init x86_quirk_time_init(void)
- {
-       if (x86_quirks->arch_time_init) {
-               /*
-                * A nonzero return code does not mean failure, it means
-                * that the architecture quirk does not want any
-                * generic (timer) setup to be performed after this:
-                */
-               if (x86_quirks->arch_time_init())
-                       return;
-       }
-       irq0.mask = cpumask_of_cpu(0);
-       setup_irq(0, &irq0);
- }
  #endif /* CONFIG_X86_32 */
diff --combined drivers/acpi/blacklist.c
@@@ -34,8 -34,6 +34,8 @@@
  #include <acpi/acpi_bus.h>
  #include <linux/dmi.h>
  
 +#include "internal.h"
 +
  enum acpi_blacklist_predicates {
        all_versions,
        less_than_or_equal,
@@@ -80,9 -78,10 +80,10 @@@ static struct acpi_blacklist_item acpi_
  
  static int __init blacklist_by_year(void)
  {
-       int year = dmi_get_year(DMI_BIOS_DATE);
+       int year;
        /* Doesn't exist? Likely an old system */
-       if (year == -1) {
+       if (!dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL)) {
                printk(KERN_ERR PREFIX "no DMI BIOS year, "
                        "acpi=force is required to enable ACPI\n" );
                return 1;
diff --combined drivers/acpi/pci_root.c
@@@ -36,8 -36,6 +36,8 @@@
  #include <acpi/acpi_bus.h>
  #include <acpi/acpi_drivers.h>
  
 +#define PREFIX "ACPI: "
 +
  #define _COMPONENT            ACPI_PCI_COMPONENT
  ACPI_MODULE_NAME("pci_root");
  #define ACPI_PCI_ROOT_CLASS           "pci_bridge"
@@@ -63,20 -61,6 +63,6 @@@ static struct acpi_driver acpi_pci_root
                },
  };
  
- struct acpi_pci_root {
-       struct list_head node;
-       struct acpi_device *device;
-       struct pci_bus *bus;
-       u16 segment;
-       u8 bus_nr;
-       u32 osc_support_set;    /* _OSC state of support bits */
-       u32 osc_control_set;    /* _OSC state of control bits */
-       u32 osc_control_qry;    /* the latest _OSC query result */
-       u32 osc_queried:1;      /* has _OSC control been queried? */
- };
  static LIST_HEAD(acpi_pci_roots);
  
  static struct acpi_pci_driver *sub_driver;
@@@ -319,7 -303,7 +305,7 @@@ static acpi_status acpi_pci_osc_support
        return status;
  }
  
- static struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
+ struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
  {
        struct acpi_pci_root *root;
  
        }
        return NULL;
  }
+ EXPORT_SYMBOL_GPL(acpi_pci_find_root);
  
  struct acpi_handle_node {
        struct list_head node;
diff --combined drivers/acpi/power.c
  #include <linux/seq_file.h>
  #include <acpi/acpi_bus.h>
  #include <acpi/acpi_drivers.h>
 -
+ #include "sleep.h"
  
 +#define PREFIX "ACPI: "
 +
  #define _COMPONENT                    ACPI_POWER_COMPONENT
  ACPI_MODULE_NAME("power");
  #define ACPI_POWER_CLASS              "power_resource"
@@@ -363,17 -363,15 +364,15 @@@ int acpi_device_sleep_wake(struct acpi_
   */
  int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_state)
  {
-       int i, err;
+       int i, err = 0;
  
        if (!dev || !dev->wakeup.flags.valid)
                return -EINVAL;
  
-       /*
-        * Do not execute the code below twice in a row without calling
-        * acpi_disable_wakeup_device_power() in between for the same device
-        */
-       if (dev->wakeup.flags.prepared)
-               return 0;
+       mutex_lock(&acpi_device_lock);
+       if (dev->wakeup.prepare_count++)
+               goto out;
  
        /* Open power resource */
        for (i = 0; i < dev->wakeup.resources.count; i++) {
                if (ret) {
                        printk(KERN_ERR PREFIX "Transition power state\n");
                        dev->wakeup.flags.valid = 0;
-                       return -ENODEV;
+                       err = -ENODEV;
+                       goto err_out;
                }
        }
  
         * in arbitrary power state afterwards.
         */
        err = acpi_device_sleep_wake(dev, 1, sleep_state, 3);
-       if (!err)
-               dev->wakeup.flags.prepared = 1;
  
+  err_out:
+       if (err)
+               dev->wakeup.prepare_count = 0;
+  out:
+       mutex_unlock(&acpi_device_lock);
        return err;
  }
  
   */
  int acpi_disable_wakeup_device_power(struct acpi_device *dev)
  {
-       int i, ret;
+       int i, err = 0;
  
        if (!dev || !dev->wakeup.flags.valid)
                return -EINVAL;
  
+       mutex_lock(&acpi_device_lock);
+       if (--dev->wakeup.prepare_count > 0)
+               goto out;
        /*
-        * Do not execute the code below twice in a row without calling
-        * acpi_enable_wakeup_device_power() in between for the same device
+        * Executing the code below even if prepare_count is already zero when
+        * the function is called may be useful, for example for initialisation.
         */
-       if (!dev->wakeup.flags.prepared)
-               return 0;
+       if (dev->wakeup.prepare_count < 0)
+               dev->wakeup.prepare_count = 0;
  
-       dev->wakeup.flags.prepared = 0;
-       ret = acpi_device_sleep_wake(dev, 0, 0, 0);
-       if (ret)
-               return ret;
+       err = acpi_device_sleep_wake(dev, 0, 0, 0);
+       if (err)
+               goto out;
  
        /* Close power resource */
        for (i = 0; i < dev->wakeup.resources.count; i++) {
-               ret = acpi_power_off_device(dev->wakeup.resources.handles[i], dev);
+               int ret = acpi_power_off_device(
+                               dev->wakeup.resources.handles[i], dev);
                if (ret) {
                        printk(KERN_ERR PREFIX "Transition power state\n");
                        dev->wakeup.flags.valid = 0;
-                       return -ENODEV;
+                       err = -ENODEV;
+                       goto out;
                }
        }
  
-       return ret;
+  out:
+       mutex_unlock(&acpi_device_lock);
+       return err;
  }
  
  /* --------------------------------------------------------------------------
diff --combined drivers/acpi/video.c
@@@ -44,8 -44,6 +44,8 @@@
  #include <acpi/acpi_bus.h>
  #include <acpi/acpi_drivers.h>
  
 +#define PREFIX "ACPI: "
 +
  #define ACPI_VIDEO_CLASS              "video"
  #define ACPI_VIDEO_BUS_NAME           "Video Bus"
  #define ACPI_VIDEO_DEVICE_NAME                "Video Device"
@@@ -2006,8 -2004,11 +2006,11 @@@ static int acpi_video_bus_put_one_devic
        status = acpi_remove_notify_handler(device->dev->handle,
                                            ACPI_DEVICE_NOTIFY,
                                            acpi_video_device_notify);
-       sysfs_remove_link(&device->backlight->dev.kobj, "device");
-       backlight_device_unregister(device->backlight);
+       if (device->backlight) {
+               sysfs_remove_link(&device->backlight->dev.kobj, "device");
+               backlight_device_unregister(device->backlight);
+               device->backlight = NULL;
+       }
        if (device->cdev) {
                sysfs_remove_link(&device->dev->dev.kobj,
                                  "thermal_cooling");
diff --combined drivers/pci/dmar.c
  #include <linux/timer.h>
  #include <linux/irq.h>
  #include <linux/interrupt.h>
+ #include <linux/tboot.h>
  
 -#undef PREFIX
 -#define PREFIX "DMAR:"
 +#define PREFIX "DMAR: "
  
  /* No locks are needed as DMA remapping hardware unit
   * list is constructed at boot time and hotplug of
@@@ -412,6 -414,12 +413,12 @@@ parse_dmar_table(void
         */
        dmar_table_detect();
  
+       /*
+        * ACPI tables may not be DMA protected by tboot, so use DMAR copy
+        * SINIT saved in SinitMleData in TXT heap (which is DMA protected)
+        */
+       dmar_tbl = tboot_get_dmar_table(dmar_tbl);
        dmar = (struct acpi_table_dmar *)dmar_tbl;
        if (!dmar)
                return -ENODEV;
diff --combined include/acpi/acpi_bus.h
@@@ -30,6 -30,8 +30,6 @@@
  
  #include <acpi/acpi.h>
  
 -#define PREFIX                        "ACPI: "
 -
  /* TBD: Make dynamic */
  #define ACPI_MAX_HANDLES      10
  struct acpi_handle_list {
@@@ -246,7 -248,6 +246,6 @@@ struct acpi_device_perf 
  /* Wakeup Management */
  struct acpi_device_wakeup_flags {
        u8 valid:1;             /* Can successfully enable wakeup? */
-       u8 prepared:1;          /* Has the wake-up capability been enabled? */
        u8 run_wake:1;          /* Run-Wake GPE devices */
  };
  
@@@ -261,6 -262,7 +260,7 @@@ struct acpi_device_wakeup 
        struct acpi_handle_list resources;
        struct acpi_device_wakeup_state state;
        struct acpi_device_wakeup_flags flags;
+       int prepare_count;
  };
  
  /* Device */
@@@ -367,10 -369,26 +367,26 @@@ int register_acpi_bus_type(struct acpi_
  int unregister_acpi_bus_type(struct acpi_bus_type *);
  struct device *acpi_get_physical_device(acpi_handle);
  
+ struct acpi_pci_root {
+       struct list_head node;
+       struct acpi_device * device;
+       struct acpi_pci_id id;
+       struct pci_bus *bus;
+       u16 segment;
+       u8 bus_nr;
+       u32 osc_support_set;    /* _OSC state of support bits */
+       u32 osc_control_set;    /* _OSC state of control bits */
+       u32 osc_control_qry;    /* the latest _OSC query result */
+       u32 osc_queried:1;      /* has _OSC control been queried? */
+ };
  /* helper */
  acpi_handle acpi_get_child(acpi_handle, acpi_integer);
  int acpi_is_root_bridge(acpi_handle);
  acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
+ struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
  #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
  
  #ifdef CONFIG_PM_SLEEP
diff --combined init/main.c
@@@ -68,7 -68,7 +68,8 @@@
  #include <linux/async.h>
  #include <linux/kmemcheck.h>
  #include <linux/kmemtrace.h>
 +#include <linux/sfi.h>
+ #include <linux/shmem_fs.h>
  #include <trace/boot.h>
  
  #include <asm/io.h>
@@@ -354,7 -354,6 +355,6 @@@ static void __init smp_init(void
  #define smp_init()    do { } while (0)
  #endif
  
- static inline void setup_per_cpu_areas(void) { }
  static inline void setup_nr_cpu_ids(void) { }
  static inline void smp_prepare_cpus(unsigned int maxcpus) { }
  
@@@ -375,29 -374,6 +375,6 @@@ static void __init setup_nr_cpu_ids(voi
        nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1;
  }
  
- #ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA
- unsigned long __per_cpu_offset[NR_CPUS] __read_mostly;
- EXPORT_SYMBOL(__per_cpu_offset);
- static void __init setup_per_cpu_areas(void)
- {
-       unsigned long size, i;
-       char *ptr;
-       unsigned long nr_possible_cpus = num_possible_cpus();
-       /* Copy section for each CPU (we discard the original) */
-       size = ALIGN(PERCPU_ENOUGH_ROOM, PAGE_SIZE);
-       ptr = alloc_bootmem_pages(size * nr_possible_cpus);
-       for_each_possible_cpu(i) {
-               __per_cpu_offset[i] = ptr - __per_cpu_start;
-               memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
-               ptr += size;
-       }
- }
- #endif /* CONFIG_HAVE_SETUP_PER_CPU_AREA */
  /* Called by boot processor to activate the rest. */
  static void __init smp_init(void)
  {
@@@ -452,6 -428,7 +429,7 @@@ static noinline void __init_refok rest_
  {
        int pid;
  
+       rcu_scheduler_starting();
        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
        numa_default_policy();
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
         * at least once to get things moving:
         */
        init_idle_bootup_task(current);
-       rcu_scheduler_starting();
        preempt_enable_no_resched();
        schedule();
        preempt_disable();
@@@ -632,7 -608,6 +609,6 @@@ asmlinkage void __init start_kernel(voi
        softirq_init();
        timekeeping_init();
        time_init();
-       sched_clock_init();
        profile_init();
        if (!irqs_disabled())
                printk(KERN_CRIT "start_kernel(): bug: interrupts were "
        numa_policy_init();
        if (late_time_init)
                late_time_init();
+       sched_clock_init();
        calibrate_delay();
        pidmap_init();
        anon_vma_init();
        check_bugs();
  
        acpi_early_init(); /* before LAPIC and SMP init */
 +      sfi_init_late();
  
        ftrace_init();
  
@@@ -811,6 -786,7 +788,7 @@@ static void __init do_basic_setup(void
        init_workqueues();
        cpuset_init_smp();
        usermodehelper_init();
+       init_tmpfs();
        driver_init();
        init_irq_proc();
        do_ctors();