diff options
Diffstat (limited to 'arch/powerpc/sysdev/xics/icp-opal.c')
-rw-r--r-- | arch/powerpc/sysdev/xics/icp-opal.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/xics/icp-opal.c b/arch/powerpc/sysdev/xics/icp-opal.c index f9670eabfcfa..b53f80f0b4d8 100644 --- a/arch/powerpc/sysdev/xics/icp-opal.c +++ b/arch/powerpc/sysdev/xics/icp-opal.c | |||
@@ -91,6 +91,16 @@ static unsigned int icp_opal_get_irq(void) | |||
91 | 91 | ||
92 | static void icp_opal_set_cpu_priority(unsigned char cppr) | 92 | static void icp_opal_set_cpu_priority(unsigned char cppr) |
93 | { | 93 | { |
94 | /* | ||
95 | * Here be dragons. The caller has asked to allow only IPI's and not | ||
96 | * external interrupts. But OPAL XIVE doesn't support that. So instead | ||
97 | * of allowing no interrupts allow all. That's still not right, but | ||
98 | * currently the only caller who does this is xics_migrate_irqs_away() | ||
99 | * and it works in that case. | ||
100 | */ | ||
101 | if (cppr >= DEFAULT_PRIORITY) | ||
102 | cppr = LOWEST_PRIORITY; | ||
103 | |||
94 | xics_set_base_cppr(cppr); | 104 | xics_set_base_cppr(cppr); |
95 | opal_int_set_cppr(cppr); | 105 | opal_int_set_cppr(cppr); |
96 | iosync(); | 106 | iosync(); |