summaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev/xics/icp-opal.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2017-04-06 15:08:10 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2017-04-06 15:08:10 -0400
commitf2ed8bebee696a80f877aa436bfafed1f3336bdd (patch)
tree515462256f08e2503e635ac971fd53e3ed4e43fa /arch/powerpc/sysdev/xics/icp-opal.c
parent527b5baeada26f9660722b4a498d3855d90f276c (diff)
parenta7d2475af7aedcb9b5c6343989a8bfadbf84429b (diff)
Merge commit 'a7d2475af7aedcb9b5c6343989a8bfadbf84429b' into uaccess.powerpc
backmerge of sorting the arch/powerpc/Kconfig
Diffstat (limited to 'arch/powerpc/sysdev/xics/icp-opal.c')
-rw-r--r--arch/powerpc/sysdev/xics/icp-opal.c10
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)
static void icp_opal_set_cpu_priority(unsigned char cppr)
{
+ /*
+ * Here be dragons. The caller has asked to allow only IPI's and not
+ * external interrupts. But OPAL XIVE doesn't support that. So instead
+ * of allowing no interrupts allow all. That's still not right, but
+ * currently the only caller who does this is xics_migrate_irqs_away()
+ * and it works in that case.
+ */
+ if (cppr >= DEFAULT_PRIORITY)
+ cppr = LOWEST_PRIORITY;
+
xics_set_base_cppr(cppr);
opal_int_set_cppr(cppr);
iosync();