diff options
author | Cédric Le Goater <clg@kaod.org> | 2017-10-04 11:15:04 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-10-04 22:01:15 +1100 |
commit | 74f1282114acc7d67e25745efe200f020f823c8a (patch) | |
tree | bb0c15e51baeb7e5bf9144f8e2c72443ae839de6 /arch/powerpc/sysdev/xive | |
parent | 070e004912fed099263408bf2ff1bbc6926abe2e (diff) | |
download | op-kernel-dev-74f1282114acc7d67e25745efe200f020f823c8a.zip op-kernel-dev-74f1282114acc7d67e25745efe200f020f823c8a.tar.gz |
powerpc/xive: Fix IPI reset
When resetting an IPI, hw_ipi should also be set to zero.
Fixes: eac1e731b59e ("powerpc/xive: guest exploitation of the XIVE interrupt controller")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/sysdev/xive')
-rw-r--r-- | arch/powerpc/sysdev/xive/spapr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c index f24a70b..d9c4c93 100644 --- a/arch/powerpc/sysdev/xive/spapr.c +++ b/arch/powerpc/sysdev/xive/spapr.c @@ -431,7 +431,11 @@ static int xive_spapr_get_ipi(unsigned int cpu, struct xive_cpu *xc) static void xive_spapr_put_ipi(unsigned int cpu, struct xive_cpu *xc) { + if (!xc->hw_ipi) + return; + xive_irq_bitmap_free(xc->hw_ipi); + xc->hw_ipi = 0; } #endif /* CONFIG_SMP */ |