diff options
author | John Keller <jpk@sgi.com> | 2007-08-23 02:32:06 +0200 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-09-01 11:49:57 +0200 |
commit | 6e9de18120988388cdae5097c09e774416d58745 (patch) | |
tree | 04f7de7bee8d38a4e871970afda136bb5ac853be /arch/ia64/sn/pci | |
parent | [IA64] Remove unnecessary cast of allocation return value in sn_hwperf_enum_o... (diff) | |
download | linux-6e9de18120988388cdae5097c09e774416d58745.tar.xz linux-6e9de18120988388cdae5097c09e774416d58745.zip |
[IA64] SN: Add support for CPU disable
Add additional support for CPU disable on SN platforms.
Correctly setup the smp_affinity mask for I/O error IRQs.
Restrict the use of the feature to Altix 4000 and 450 systems
running with a CPU disable capable PROM, and do not allow disabling
of CPU 0.
Signed-off-by: John Keller <jpk@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/sn/pci')
-rw-r--r-- | arch/ia64/sn/pci/pcibr/pcibr_provider.c | 1 | ||||
-rw-r--r-- | arch/ia64/sn/pci/tioca_provider.c | 2 | ||||
-rw-r--r-- | arch/ia64/sn/pci/tioce_provider.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c index 42485ad50ceb..ab3eaf85fe4d 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c @@ -145,6 +145,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont printk(KERN_WARNING "pcibr cannot allocate interrupt for error handler\n"); } + sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); /* * Update the Bridge with the "kernel" pagesize diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index d798dd4d0dc4..ef048a674772 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c @@ -654,6 +654,8 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont __FUNCTION__, SGI_TIOCA_ERROR, (int)tioca_common->ca_common.bs_persist_busnum); + sn_set_err_irq_affinity(SGI_TIOCA_ERROR); + /* Setup locality information */ controller->node = tioca_kern->ca_closest_node; return tioca_common; diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index 84b72b27e27f..cee9379d44e0 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c @@ -1034,6 +1034,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont tioce_common->ce_pcibus.bs_persist_segment, tioce_common->ce_pcibus.bs_persist_busnum); + sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); return tioce_common; } |