powerpc/powernv: Properly set "host-ipi" on IPIs
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 7 Feb 2017 00:35:36 +0000 (11:35 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 9 Feb 2017 04:51:21 +0000 (15:51 +1100)
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>
arch/powerpc/sysdev/xics/icp-opal.c

index c96c0cb95d8748ceb28172bd46255f77793590e5..f9670eabfcfa70ca338aa0c5f2e10217803c7162 100644 (file)
@@ -120,14 +120,16 @@ static void icp_opal_cause_ipi(int cpu, unsigned long data)
 {
        int hw_cpu = get_hard_smp_processor_id(cpu);
 
+       kvmppc_set_host_ipi(cpu, 1);
        opal_int_set_mfrr(hw_cpu, IPI_PRIORITY);
 }
 
 static irqreturn_t icp_opal_ipi_action(int irq, void *dev_id)
 {
-       int hw_cpu = hard_smp_processor_id();
+       int cpu = smp_processor_id();
 
-       opal_int_set_mfrr(hw_cpu, 0xff);
+       kvmppc_set_host_ipi(cpu, 0);
+       opal_int_set_mfrr(get_hard_smp_processor_id(cpu), 0xff);
 
        return smp_ipi_demux();
 }