From 008879c73603cb977c167aa411ccbf2d36b32f10 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Fri, 6 May 2005 16:28:56 +1000 Subject: [PATCH] --- yaml --- r: 1054 b: refs/heads/master c: 6c80a21cb1825e576ffff9df2302bf0fa1065ceb h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/ppc64/kernel/pSeries_smp.c | 7 ------- trunk/arch/ppc64/kernel/xics.c | 16 ++++++++++++---- trunk/include/asm-ppc64/xics.h | 3 --- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index e64e72c3f937..43bf49fb3678 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2512809255d018744fe6c2f5e996c83769846c07 +refs/heads/master: 6c80a21cb1825e576ffff9df2302bf0fa1065ceb diff --git a/trunk/arch/ppc64/kernel/pSeries_smp.c b/trunk/arch/ppc64/kernel/pSeries_smp.c index c60d8cb2b84d..fbad349ec58c 100644 --- a/trunk/arch/ppc64/kernel/pSeries_smp.c +++ b/trunk/arch/ppc64/kernel/pSeries_smp.c @@ -326,13 +326,6 @@ static void __devinit smp_xics_setup_cpu(int cpu) cpu_clear(cpu, of_spin_map); - /* - * Put the calling processor into the GIQ. This is really only - * necessary from a secondary thread as the OF start-cpu interface - * performs this function for us on primary threads. - */ - rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE, - (1UL << interrupt_server_size) - 1 - default_distrib_server, 1); } static DEFINE_SPINLOCK(timebase_lock); diff --git a/trunk/arch/ppc64/kernel/xics.c b/trunk/arch/ppc64/kernel/xics.c index eedd1d3c2a10..879f39b90a33 100644 --- a/trunk/arch/ppc64/kernel/xics.c +++ b/trunk/arch/ppc64/kernel/xics.c @@ -432,6 +432,7 @@ void xics_cause_IPI(int cpu) { ops->qirr_info(cpu, IPI_PRIORITY); } +#endif /* CONFIG_SMP */ void xics_setup_cpu(void) { @@ -439,9 +440,17 @@ void xics_setup_cpu(void) ops->cppr_info(cpu, 0xff); iosync(); -} -#endif /* CONFIG_SMP */ + /* + * Put the calling processor into the GIQ. This is really only + * necessary from a secondary thread as the OF start-cpu interface + * performs this function for us on primary threads. + * + * XXX: undo of teardown on kexec needs this too, as may hotplug + */ + rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE, + (1UL << interrupt_server_size) - 1 - default_distrib_server, 1); +} void xics_init_IRQ(void) { @@ -563,8 +572,7 @@ void xics_init_IRQ(void) for (; i < NR_IRQS; ++i) get_irq_desc(i)->handler = &xics_pic; - ops->cppr_info(boot_cpuid, 0xff); - iosync(); + xics_setup_cpu(); ppc64_boot_msg(0x21, "XICS Done"); } diff --git a/trunk/include/asm-ppc64/xics.h b/trunk/include/asm-ppc64/xics.h index 0027da4364ac..fdec5e7a7af6 100644 --- a/trunk/include/asm-ppc64/xics.h +++ b/trunk/include/asm-ppc64/xics.h @@ -30,7 +30,4 @@ struct xics_ipi_struct { extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned; -extern unsigned int default_distrib_server; -extern unsigned int interrupt_server_size; - #endif /* _PPC64_KERNEL_XICS_H */