aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-02-17 01:09:29 -0500
committerDavid S. Miller <davem@davemloft.net>2010-02-17 01:09:29 -0500
commit2bb4646fce8d09916b351d1a62f98db7cec6fc41 (patch)
treec1f0d002e69868606eca9d1b919835f422892063 /arch/powerpc/platforms
parent6836b9bdd98e3b500cd49512484df68f46e14659 (diff)
parentb0483e78e5c4c9871fc5541875b3bc006846d46b (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/pseries/xics.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index d80f193cd871..f5f79196721c 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -191,11 +191,7 @@ static int get_irq_server(unsigned int virq, cpumask_t cpumask,
191 return default_server; 191 return default_server;
192} 192}
193#else 193#else
194static int get_irq_server(unsigned int virq, cpumask_t cpumask, 194#define get_irq_server(virq, cpumask, strict_check) (default_server)
195 unsigned int strict_check)
196{
197 return default_server;
198}
199#endif 195#endif
200 196
201static void xics_unmask_irq(unsigned int virq) 197static void xics_unmask_irq(unsigned int virq)
@@ -788,9 +784,13 @@ static void xics_set_cpu_priority(unsigned char cppr)
788{ 784{
789 struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr); 785 struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr);
790 786
791 BUG_ON(os_cppr->index != 0); 787 /*
788 * we only really want to set the priority when there's
789 * just one cppr value on the stack
790 */
791 WARN_ON(os_cppr->index != 0);
792 792
793 os_cppr->stack[os_cppr->index] = cppr; 793 os_cppr->stack[0] = cppr;
794 794
795 if (firmware_has_feature(FW_FEATURE_LPAR)) 795 if (firmware_has_feature(FW_FEATURE_LPAR))
796 lpar_cppr_info(cppr); 796 lpar_cppr_info(cppr);
@@ -825,8 +825,14 @@ void xics_setup_cpu(void)
825 825
826void xics_teardown_cpu(void) 826void xics_teardown_cpu(void)
827{ 827{
828 struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr);
828 int cpu = smp_processor_id(); 829 int cpu = smp_processor_id();
829 830
831 /*
832 * we have to reset the cppr index to 0 because we're
833 * not going to return from the IPI
834 */
835 os_cppr->index = 0;
830 xics_set_cpu_priority(0); 836 xics_set_cpu_priority(0);
831 837
832 /* Clear any pending IPI request */ 838 /* Clear any pending IPI request */