···1919#include <asm/sn/pcidev.h>2020#include <asm/sn/shub_mmr.h>2121#include <asm/sn/sn_sal.h>2222+#include <asm/sn/sn_feature_sets.h>22232324static void force_interrupt(int irq);2425static void register_intr_pda(struct sn_irq_info *sn_irq_info);···233232 sn_irq_lh[irq], list)234233 (void)sn_retarget_vector(sn_irq_info, nasid, slice);235234}235235+236236+#ifdef CONFIG_SMP237237+void sn_set_err_irq_affinity(unsigned int irq)238238+{239239+ /*240240+ * On systems which support CPU disabling (SHub2), all error interrupts241241+ * are targetted at the boot CPU.242242+ */243243+ if (is_shub2() && sn_prom_feature_available(PRF_CPU_DISABLE_SUPPORT))244244+ set_irq_affinity_info(irq, cpu_physical_id(0), 0);245245+}246246+#else247247+void sn_set_err_irq_affinity(unsigned int irq) { }248248+#endif236249237250static void238251sn_mask_irq(unsigned int irq)
+26
arch/ia64/sn/kernel/sn2/sn2_smp.c
···4040#include <asm/sn/shub_mmr.h>4141#include <asm/sn/nodepda.h>4242#include <asm/sn/rw_mmr.h>4343+#include <asm/sn/sn_feature_sets.h>43444445DEFINE_PER_CPU(struct ptc_stats, ptcstats);4546DECLARE_PER_CPU(struct ptc_stats, ptcstats);···429428430429 sn_send_IPI_phys(nasid, physid, vector, delivery_mode);431430}431431+432432+#ifdef CONFIG_HOTPLUG_CPU433433+/**434434+ * sn_cpu_disable_allowed - Determine if a CPU can be disabled.435435+ * @cpu - CPU that is requested to be disabled.436436+ *437437+ * CPU disable is only allowed on SHub2 systems running with a PROM438438+ * that supports CPU disable. It is not permitted to disable the boot processor.439439+ */440440+bool sn_cpu_disable_allowed(int cpu)441441+{442442+ if (is_shub2() && sn_prom_feature_available(PRF_CPU_DISABLE_SUPPORT)) {443443+ if (cpu != 0)444444+ return true;445445+ else446446+ printk(KERN_WARNING447447+ "Disabling the boot processor is not allowed.\n");448448+449449+ } else450450+ printk(KERN_WARNING451451+ "CPU disable is not supported on this system.\n");452452+453453+ return false;454454+}455455+#endif /* CONFIG_HOTPLUG_CPU */432456433457#ifdef CONFIG_PROC_FS434458