diff options
author | John Keller <jpk@sgi.com> | 2007-08-22 20:32:06 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-09-01 05:49:57 -0400 |
commit | 6e9de18120988388cdae5097c09e774416d58745 (patch) | |
tree | 04f7de7bee8d38a4e871970afda136bb5ac853be /arch/ia64/sn/pci | |
parent | 1aac0b5739ae192ee812eee09625ebfc08c2d760 (diff) |
[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 | |||
145 | printk(KERN_WARNING | 145 | printk(KERN_WARNING |
146 | "pcibr cannot allocate interrupt for error handler\n"); | 146 | "pcibr cannot allocate interrupt for error handler\n"); |
147 | } | 147 | } |
148 | sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); | ||
148 | 149 | ||
149 | /* | 150 | /* |
150 | * Update the Bridge with the "kernel" pagesize | 151 | * 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 | |||
654 | __FUNCTION__, SGI_TIOCA_ERROR, | 654 | __FUNCTION__, SGI_TIOCA_ERROR, |
655 | (int)tioca_common->ca_common.bs_persist_busnum); | 655 | (int)tioca_common->ca_common.bs_persist_busnum); |
656 | 656 | ||
657 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); | ||
658 | |||
657 | /* Setup locality information */ | 659 | /* Setup locality information */ |
658 | controller->node = tioca_kern->ca_closest_node; | 660 | controller->node = tioca_kern->ca_closest_node; |
659 | return tioca_common; | 661 | 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 | |||
1034 | tioce_common->ce_pcibus.bs_persist_segment, | 1034 | tioce_common->ce_pcibus.bs_persist_segment, |
1035 | tioce_common->ce_pcibus.bs_persist_busnum); | 1035 | tioce_common->ce_pcibus.bs_persist_busnum); |
1036 | 1036 | ||
1037 | sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); | ||
1037 | return tioce_common; | 1038 | return tioce_common; |
1038 | } | 1039 | } |
1039 | 1040 | ||