linux/arch/x86/platform/uv
Dimitri Sivanich 8191c9f692 x86: UV: Address interrupt/IO port operation conflict
This patch for SGI UV systems addresses a problem whereby
interrupt transactions being looped back from a local IOH,
through the hub to a local CPU can (erroneously) conflict with
IO port operations and other transactions.

To workaound this we set a high bit in the APIC IDs used for
interrupts. This bit appears to be ignored by the sockets, but
it avoids the conflict in the hub.

Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
LKML-Reference: <20101116222352.GA8155@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
___

 arch/x86/include/asm/uv/uv_hub.h   |    4 ++++
 arch/x86/include/asm/uv/uv_mmrs.h  |   19 ++++++++++++++++++-
 arch/x86/kernel/apic/x2apic_uv_x.c |   25 +++++++++++++++++++++++--
 arch/x86/platform/uv/tlb_uv.c      |    2 +-
 arch/x86/platform/uv/uv_time.c     |    4 +++-
 5 files changed, 49 insertions(+), 5 deletions(-)
2010-11-18 10:41:25 +01:00
..
bios_uv.c x86: Move uv to platform 2010-10-27 14:30:02 +02:00
Makefile x86: Move uv to platform 2010-10-27 14:30:02 +02:00
tlb_uv.c x86: UV: Address interrupt/IO port operation conflict 2010-11-18 10:41:25 +01:00
uv_irq.c x86: Move uv to platform 2010-10-27 14:30:02 +02:00
uv_sysfs.c x86: Move uv to platform 2010-10-27 14:30:02 +02:00
uv_time.c x86: UV: Address interrupt/IO port operation conflict 2010-11-18 10:41:25 +01:00