Hi Linus, please do a

	bk pull http://linux-acpi.bkbits.net/linux-smp-init

This will update the following files:

 arch/i386/Kconfig                            |   49 
 arch/i386/Kconfig.debug                      |   10 
 arch/i386/kernel/Makefile                    |   24 
 arch/i386/kernel/acpi.c                      |   55 
 arch/i386/kernel/acpi/boot.c                 |  490 +++
 arch/i386/kernel/apic.c                      |   56 
 arch/i386/kernel/cpu/intel.c                 |    2 
 arch/i386/kernel/i386_ksyms.c                |    2 
 arch/i386/kernel/io_apic.c                   | 1422 +++--------
 arch/i386/kernel/mpparse.c                   | 1932 +++++++--------
 arch/i386/kernel/nmi.c                       |    1 
 arch/i386/kernel/reboot.c                    |    1 
 arch/i386/kernel/setup.c                     |   49 
 arch/i386/kernel/smpboot.c                   |    8 
 arch/i386/kernel/smpenum.c                   |  429 ++-
 arch/i386/kernel/time.c                      |    1 
 arch/i386/kernel/timers/timer_pit.c          |    2 
 arch/i386/mach-visws/mpparse.c               |  101 
 arch/i386/mm/discontig.c                     |    2 
 arch/i386/pci/irq.c                          |   13 
 arch/x86_64/kernel/acpi/Makefile             |    1 
 arch/x86_64/kernel/acpi/boot.c               |  852 ++++++
 drivers/acpi/Kconfig                         |    1 
 drivers/acpi/bus.c                           |    5 
 drivers/acpi/pci_irq.c                       |    3 
 include/asm-i386/acpi.h                      |   28 
 include/asm-i386/genapic.h                   |   20 
 include/asm-i386/hpet.h                      |    1 
 include/asm-i386/io_apic.h                   |   65 
 include/asm-i386/mach-bigsmp/mach_apic.h     |   19 
 include/asm-i386/mach-default/mach_apic.h    |   21 
 include/asm-i386/mach-default/mach_mpparse.h |   10 
 include/asm-i386/mach-es7000/mach_apic.h     |   13 
 include/asm-i386/mach-es7000/mach_mpparse.h  |    8 
 include/asm-i386/mach-generic/mach_mpparse.h |    2 
 include/asm-i386/mach-numaq/mach_apic.h      |   17 
 include/asm-i386/mach-numaq/mach_mpparse.h   |   12 
 include/asm-i386/mach-summit/mach_apic.h     |   20 
 include/asm-i386/mach-summit/mach_mpparse.h  |   10 
 include/asm-i386/mach-visws/mach_apic.h      |    8 
 include/asm-i386/mpspec.h                    |  113 
 include/asm-i386/mpspec_def.h                |   13 
 include/asm-i386/smp.h                       |    5 
 include/asm-i386/smpenum.h                   |  537 ++--
 44 files changed, 3591 insertions(+), 2842 deletions(-)

through these ChangeSets:

<agrover@grover5.jf.intel.com> (04/10/08 1.2009.4.2)
   [smpenum] fix x86_64 build. It's still using the old SMP code, but
   it does compile/boot now.

<agrover@grover3.jf.intel.com> (04/09/15 1.1867.3.2)
   [smpenum] fix the case where there is no smp enumerator. Reported
   by Stien Jordet.

<agrover@grover3.jf.intel.com> (04/08/30 1.1832.1.30)
   [smpenum] update copyright

<agrover@grover3.jf.intel.com> (04/08/30 1.1832.1.29)
   [smpenum] acpi/boot.c: remove unneeded functions

<agrover@grover3.jf.intel.com> (04/08/30 1.1832.27.2)
   [smpenum] Reorganize code.
   Pull ACPI code out of io_apic.c and mpparse.c, put it in acpi/boot.c
   Pull MPS code out of io_apic.c, put it in mpparse.c

<agrover@grover3.jf.intel.com> (04/08/26 1.1832.24.3)
   [smpenum] fix compile/merge error

<agrover@grover3.jf.intel.com> (04/08/26 1.1832.24.2)
   [smpenum] remove duplicate SMP config stuff in Kconfig.debug

<agrover@grover3.jf.intel.com> (04/08/20 1.1803.143.2)
   [smpenum] include warning fix, and merge in latest io_apic.c changes

<agrover@grover3.jf.intel.com> (04/08/09 1.1803.84.14)
   [smpenum] re-add include. guess it was needed...

<agrover@grover3.jf.intel.com> (04/08/09 1.1803.84.13)
   [smpenum] more fixing of headers...arrgh. Man, all these sub arches
   and config options make this a pain.

<agrover@grover3.jf.intel.com> (04/08/09 1.1803.84.12)
   [smpenum] build fixes

<agrover@grover3.jf.intel.com> (04/08/09 1.1803.84.11)
   [smpenum] rename mp_register_gsi to acpi_register_io_apic_gsi
   other minor cleanups/comment fixes

<agrover@grover3.jf.intel.com> (04/08/08 1.1803.84.10)
   [smpenum] compiles on all subarches again

<agrover@grover3.jf.intel.com> (04/08/07 1.1803.84.9)
   [smpenum] undo some ideas that didn't end up working, hopefully
   to get the patch size down

<agrover@grover3.jf.intel.com> (04/08/07 1.1803.84.8)
   [smpenum] kernel now compiles with MPS configured out!

<agrover@grover3.jf.intel.com> (04/08/07 1.1803.84.7)
   [smpenum] It now boots on my machine in ACPI mode!
   ACPI codepath is almost completely free of MPSisms

<agrover@grover3.jf.intel.com> (04/08/06 1.1803.84.6)
   [smpenum] obvious bug in hack

<agrover@grover3.jf.intel.com> (04/08/05 1.1803.84.5)
   [smpenum] safety checkin, about to start debugging

<agrover@grover3.jf.intel.com> (04/08/05 1.1803.84.4)
   [smpenum] eliminate irqflag member in mp_irqs in favor of separate polarity
   and trigger members
   Add defines for polarity and trigger values

<agrover@grover3.jf.intel.com> (04/08/05 1.1803.84.3)
   [smpenum] change some variable names, and improve smpenum error
   handling

<agrover@grover3.jf.intel.com> (04/08/04 1.1803.84.2)
   [smpenum] make additions to the mp_irqs array go through smpenum.
   Rename a bunch of struct members (get rid of mpc_ prefix)

<agrover@grover3.jf.intel.com> (04/07/23 1.1803.18.3)
   [smpenum] MPS fix

<agrover@grover4.jf.intel.com> (04/07/22 1.1803.18.2)
   [smpenum] keep up with changes

<agrover@grover4.jf.intel.com> (04/07/20 1.1371.428.16)
   [smpenum] More merging...

<agrover@groveronline.com> (04/02/24 1.1371.254.6)
   [smpenum] always call setup_ioapic_ids

<agrover@groveronline.com> (04/01/20 1.1217.22.3)
   [smpenum] Hide mp_lapic_addr mapping behind an smpenum interface

<agrover@groveronline.com> (04/01/20 1.1217.22.2)
   [smpenum] Fix compilation errors, and do not touch the lapic until we set fixmap

<agrover@groveronline.com> (04/01/19 1.1046.619.2)
   [smpenum] Fix one remaining instance for the new ioapic union usage

<agrover@groveronline.com> (04/01/19 1.1046.618.2)
   [smpenum] Merge to 2.5.72
   - Handle removal of MP_BUS_UNKNOWN
   - Handle mpspec_def.h introduction

<agrover@groveronline.com> (03/06/12 1.1046.291.3)
   [smpenum] Update for addition of generic subarch

<agrover@groveronline.com> (03/06/12 1.1046.291.2)
   [smpenum] re-add missing #ifdef from merge

<agrover@groveronline.com> (03/03/07 1.889.346.2)
   Manual Merge2

<agrover@groveronline.com> (03/03/07 1.889.262.2)
   [smpenum] change what define enables smpenum.o compilation

<agrover@groveronline.com> (03/02/24 1.889.222.6)
   [smpenum] fix a lot of compilation issues when compiling for the various
   x86 subarches

<agrover@groveronline.com> (03/02/21 1.889.222.5)
   [snmpenum] Hmm, maybe we want a CONFIG_X86_MPPARSE after all

<agrover@groveronline.com> (03/02/20 1.889.222.4)
   [smpenum] fix for UP compile

<agrover@groveronline.com> (03/02/19 1.889.222.3)
   Cset exclude: agrover@groveronline.com|ChangeSet|20030125011210|06056

<agrover@groveronline.com> (03/02/19 1.889.222.2)

<agrover@groveronline.com> (03/01/25 1.889.68.12)
   [smpenum] Add some dprintks so we know when bad stuff happens

<agrover@groveronline.com> (03/01/24 1.889.68.11)
   [smpenum] change mpc_apic_id to take individual params instead of a struct ptr

<agrover@groveronline.com> (03/01/24 1.889.68.10)
   [smpenum] This cset starts the modularization of SMP enumerators. MPS and ACPI
   now use a registration function with smpenum (only 1 function ptr passed so
   far) but the groundwork is there for better isolation of variables and
   data structures.
   
   This also implements MPS fallback. If ACPI cannot parse any of the tables,
   it resets any variables it might have set, and lets MPS be used.
   
   Finally, since smp_processor_register only takes 2 params, we just pass them,
   instead of passing a struct with them as members.

<agrover@groveronline.com> (03/01/24 1.889.68.9)
   [smpenum] Previously, I changed all instances of smp_found_config to
   mps_found_config. Now, I have re-added smp_found_config. It means
   (acpi_found_config || mps_found_config).

<agrover@groveronline.com> (03/01/24 1.889.68.8)
   [smpenum] No reason for CONFIG_X86_MPPARSE option - remove it

<agrover@groveronline.com> (03/01/23 1.889.68.7)
   [smpenum] Get things compiling again for all variations of UP with or without
   LAPIC and IOAPIC

<agrover@groveronline.com> (03/01/23 1.889.68.6)
   [smpenum] Unify IOAPIC code through added smp_ioapic_register function
   
   This patch renames setup_io_apic_ids_from_mpc to setup_io_apic_ids. It makes
   ACPI use this function, and also changes the apicid discovery algorithm to
   precisely match what the MPS spec says (most notably, if the apicid already
   has a value programmed, use that over what the BIOS says)
   
   We save space and make the code simpler by only having the fields we need in
   the kernel data structures, instead of using the entire MPS-defined one.

<agrover@groveronline.com> (03/01/22 1.889.68.5)
   [smpenum] Rename APIC_BROADCAST_ID to APIC_MAX_ID, since that's what it
   really is.

<agrover@groveronline.com> (03/01/21 1.889.68.4)
   [smpenum] Make MP bus enumeration use a non-MPS interface called
   smp_bus_register.

<agrover@groveronline.com> (03/01/21 1.889.68.3)
   [smpenum] Add smpenum.c
   
   struct/variable/function renames (mainly mpc_record -> mps_record)
   Remove MP_processor_info, and change code to call smp_processor_register
   instead.
   
   Move non-MPS variables to smpenum.c
   
   No real reason to call find_smp_config from setup_memory - move it
   to setup_arch, which is where the ACPI equivalent function is called
   from.

<agrover@groveronline.com> (03/01/21 1.889.68.2)
   [smpenum] struct mpc_config_processor no longer includes mpc_cpufeature
   member, so remove printks that reference that.

<agrover@groveronline.com> (03/01/21 1.889.68.1)
   [smpenum] rename structs and variables

