aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-02-06 19:35:36 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2017-02-08 23:51:21 -0500
commitf83e6862047e1e371bdc5d512dd6cabe8a3965b8 (patch)
treebccad1dfc0b25d5dc810a00e950468a80b2643f3
parent9b256714979fad61ae11d90b53cf67dd5e6484eb (diff)
powerpc/powernv: Properly set "host-ipi" on IPIs
Otherwise KVM will fail to pass them through to the host Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--arch/powerpc/sysdev/xics/icp-opal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/powerpc/sysdev/xics/icp-opal.c b/arch/powerpc/sysdev/xics/icp-opal.c
index c96c0cb95d87..f9670eabfcfa 100644
--- a/arch/powerpc/sysdev/xics/icp-opal.c
+++ b/arch/powerpc/sysdev/xics/icp-opal.c
@@ -120,14 +120,16 @@ static void icp_opal_cause_ipi(int cpu, unsigned long data)
120{ 120{
121 int hw_cpu = get_hard_smp_processor_id(cpu); 121 int hw_cpu = get_hard_smp_processor_id(cpu);
122 122
123 kvmppc_set_host_ipi(cpu, 1);
123 opal_int_set_mfrr(hw_cpu, IPI_PRIORITY); 124 opal_int_set_mfrr(hw_cpu, IPI_PRIORITY);
124} 125}
125 126
126static irqreturn_t icp_opal_ipi_action(int irq, void *dev_id) 127static irqreturn_t icp_opal_ipi_action(int irq, void *dev_id)
127{ 128{
128 int hw_cpu = hard_smp_processor_id(); 129 int cpu = smp_processor_id();
129 130
130 opal_int_set_mfrr(hw_cpu, 0xff); 131 kvmppc_set_host_ipi(cpu, 0);
132 opal_int_set_mfrr(get_hard_smp_processor_id(cpu), 0xff);
131 133
132 return smp_ipi_demux(); 134 return smp_ipi_demux();
133} 135}