powerpc/xive: Fix trying to "push" an already active pool VP
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 11 Apr 2018 05:17:59 +0000 (15:17 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Apr 2018 07:36:37 +0000 (09:36 +0200)
commitce3b0b0589a8b7e0241c0d1b1049a715108b78fb
tree58c46e9bf196bd8efeeab1015c215faa1fba59ee
parent49a52f7d9274da3f32d7c3b51843fa44fffd2e55
powerpc/xive: Fix trying to "push" an already active pool VP

commit b32e56e5a87a1f9243db92bc7a5df0ffb4627cfb upstream.

When setting up a CPU, we "push" (activate) a pool VP for it.

However it's an error to do so if it already has an active
pool VP.

This happens when doing soft CPU hotplug on powernv since we
don't tear down the CPU on unplug. The HW flags the error which
gets captured by the diagnostics.

Fix this by making sure to "pull" out any already active pool
first.

Fixes: 243e25112d06 ("powerpc/xive: Native exploitation of the XIVE interrupt controller")
Cc: stable@vger.kernel.org # v4.12+
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/sysdev/xive/native.c