Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 14 Sep 2009 14:51:20 +0000 (07:51 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 14 Sep 2009 14:51:20 +0000 (07:51 -0700)
* 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)
  ACPI, x86: expose some IO-APIC routines when CONFIG_ACPI=n
  x86, apic: Slim down stack usage in early_init_lapic_mapping()
  x86, ioapic: Get rid of needless check and simplify ioapic_setup_resources()
  x86, ioapic: Define IO_APIC_DEFAULT_PHYS_BASE constant
  x86: Fix x86_model test in es7000_apic_is_cluster()
  x86, apic: Move dmar_table_init() out of enable_IR()
  x86, ioapic: Panic on irq-pin binding only if needed
  x86/apic: Enable x2APIC without interrupt remapping under KVM
  x86, apic: Drop redundant bit assignment
  x86, ioapic: Throw BUG instead of NULL dereference
  x86, ioapic: Introduce for_each_irq_pin() helper
  x86: Remove superfluous NULL pointer check in destroy_irq()
  x86/ioapic.c: unify ioapic_retrigger_irq()
  x86/ioapic.c: convert __target_IO_APIC_irq to conventional for() loop
  x86/ioapic.c: clean up replace_pin_at_irq_node logic and comments
  x86/ioapic.c: convert replace_pin_at_irq_node to conventional for() loop
  x86/ioapic.c: simplify add_pin_to_irq_node()
  x86/ioapic.c: convert io_apic_level_ack_pending loop to normal for() loop
  x86/ioapic.c: move lost comment to what seems like appropriate place
  x86/ioapic.c: remove redundant declaration of irq_pin_list
  ...

1  2 
arch/x86/kernel/apic/probe_64.c

@@@ -44,22 -44,17 +44,22 @@@ static struct apic *apic_probe[] __init
        NULL,
  };
  
 +static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
 +{
 +      return hard_smp_processor_id() >> index_msb;
 +}
 +
  /*
   * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
   */
  void __init default_setup_apic_routing(void)
  {
  #ifdef CONFIG_X86_X2APIC
-       if (x2apic_mode && (apic != &apic_x2apic_phys &&
+       if (x2apic_mode
  #ifdef CONFIG_X86_UV
-                      apic != &apic_x2apic_uv_x &&
+                      && apic != &apic_x2apic_uv_x
  #endif
-                      apic != &apic_x2apic_cluster)) {
+                      ) {
                if (x2apic_phys)
                        apic = &apic_x2apic_phys;
                else
                printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
        }
  
 +      if (is_vsmp_box()) {
 +              /* need to update phys_pkg_id */
 +              apic->phys_pkg_id = apicid_phys_pkg_id;
 +      }
 +
        /*
         * Now that apic routing model is selected, configure the
         * fault handling for intr remapping.