1. 19 10月, 2010 1 次提交
    • Y
      x86: ioapic: Call free_irte only if interrupt remapping enabled · 9717967c
      Yinghai Lu 提交于
      On a system that support intr-rempping when booting with "intremap=off"
      
      [  177.895501] BUG: unable to handle kernel NULL pointer dereference at 00000000000000f8
      [  177.913316] IP: [<ffffffff8145fc18>] free_irte+0x47/0xc0
      ...
      [  178.173326] Call Trace:
      [  178.173574]  [<ffffffff810515b4>] destroy_irq+0x3a/0x75
      [  178.192934]  [<ffffffff81051834>] arch_teardown_msi_irq+0xe/0x10
      [  178.193418]  [<ffffffff81458dc3>] arch_teardown_msi_irqs+0x56/0x7f
      [  178.213021]  [<ffffffff81458e79>] free_msi_irqs+0x8d/0xeb
      
      Call free_irte only when interrupt remapping is enabled.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      LKML-Reference: <4CBCB274.7010108@kernel.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      9717967c
  2. 12 10月, 2010 31 次提交
  3. 01 10月, 2010 1 次提交
  4. 16 9月, 2010 3 次提交
    • S
      x86, x2apic: Simplify apic init in SMP and UP builds · fa47f7e5
      Suresh Siddha 提交于
      Move enable_IR_x2apic() inside the default_setup_apic_routing(),
      and for SMP platforms, move the default_setup_apic_routing() after
      smp_sanity_check(). This cleans up the code that tries to avoid multiple
      calls to default_setup_apic_routing() when smp_sanity_check() fails (which
      goes through the APIC_init_uniprocessor() path).
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <20100827181049.173087246@sbsiddha-MOBL3.sc.intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      fa47f7e5
    • S
      x86, intr-remap: Remove IRTE setup duplicate code · 62a92f4c
      Suresh Siddha 提交于
      Remove IRTE setup duplicate code with prepare_irte().
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <20100827181049.095067319@sbsiddha-MOBL3.sc.intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      62a92f4c
    • S
      x86, intr-remap: Set redirection hint in the IRTE · 75e3cfbe
      Suresh Siddha 提交于
      Currently the redirection hint in the interrupt-remapping table entry
      is set to 0, which means the remapped interrupt is directed to the
      processors listed in the destination. So in logical flat mode
      in the presence of intr-remapping, this results in a single
      interrupt multi-casted to multiple cpu's as specified by the destination
      bit mask. But what we really want is to send that interrupt to one of the cpus
      based on the lowest priority delivery mode.
      
      Set the redirection hint in the IRTE to '1' to indicate that we want
      the remapped interrupt to be directed to only one of the processors
      listed in the destination.
      
      This fixes the issue of same interrupt getting delivered to multiple cpu's
      in the logical flat mode in the presence of interrupt-remapping. While
      there is no functional issue observed with this behavior, this will
      impact performance of such configurations (<=8 cpu's using logical flat
      mode in the presence of interrupt-remapping)
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <20100827181049.013051492@sbsiddha-MOBL3.sc.intel.com>
      Cc: Weidong Han <weidong.han@intel.com>
      Cc: <stable@kernel.org> # [v2.6.32+]
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      75e3cfbe
  5. 10 9月, 2010 1 次提交
  6. 20 8月, 2010 1 次提交
    • D
      x86, apic: Fix apic=debug boot crash · 05e40760
      Daniel Kiper 提交于
      Fix a boot crash when apic=debug is used and the APIC is
      not properly initialized.
      
      This issue appears during Xen Dom0 kernel boot but the
      fix is generic and the crash could occur on real hardware
      as well.
      Signed-off-by: NDaniel Kiper <dkiper@net-space.pl>
      Cc: xen-devel@lists.xensource.com
      Cc: konrad.wilk@oracle.com
      Cc: jeremy@goop.org
      Cc: <stable@kernel.org> # .35.x, .34.x, .33.x, .32.x
      LKML-Reference: <20100819224616.GB9967@router-fw-old.local.net-space.pl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      05e40760
  7. 13 8月, 2010 1 次提交
  8. 06 8月, 2010 1 次提交
    • E
      x86, apic: Map the local apic when parsing the MP table. · 5989cd6a
      Eric W. Biederman 提交于
      This fixes a regression in 2.6.35 from 2.6.34, that is
      present for select models of Intel cpus when people are
      using an MP table.
      
      The commit cf7500c0
      "x86, ioapic: In mpparse use mp_register_ioapic" started
      calling mp_register_ioapic from MP_ioapic_info.  An extremely
      simple change that was obviously correct.  Unfortunately
      mp_register_ioapic did just a little more than the previous
      hand crafted code and so we gained this call path.
      
      The problem call path is:
      MP_ioapic_info()
        mp_register_ioapic()
         io_apic_unique_id()
           io_apic_get_unique_id()
             get_physical_broadcast()
               modern_apic()
                 lapic_get_version()
                   apic_read(APIC_LVR)
      
      Which turned out to be a problem because the local apic
      was not mapped, at that point, unlike the similar point
      in the ACPI parsing code.
      
      This problem is fixed by mapping the local apic when
      parsing the mptable as soon as we reasonably can.
      
      Looking at the number of places we setup the fixmap for
      the local apic, I see some serious simplification opportunities.
      For the moment except for not duplicating the setting up of the
      fixmap in init_apic_mappings, I have not acted on them.
      
      The regression from 2.6.34 is tracked in bug
      https://bugzilla.kernel.org/show_bug.cgi?id=16173
      
      Cc: <stable@kernel.org> 2.6.35
      Reported-by: NDavid Hill <hilld@binarystorm.net>
      Reported-by: NTvrtko Ursulin <tvrtko.ursulin@sophos.com>
      Tested-by: NTvrtko Ursulin <tvrtko.ursulin@sophos.com>
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      LKML-Reference: <m1eiee86jg.fsf_-_@fess.ebiederm.org>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      5989cd6a