linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] powerpc/xive: Fix trying to "push" an already active pool VP
@ 2018-04-11  5:17 Benjamin Herrenschmidt
  2018-04-11  5:18 ` [PATCH 2/3] powerpc/xive: Remove now useless pr_debug statements Benjamin Herrenschmidt
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2018-04-11  5:17 UTC (permalink / raw)
  To: linuxppc-dev

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.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/sysdev/xive/native.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index d22aeb0b69e1..b48454be5b98 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -389,6 +389,10 @@ static void xive_native_setup_cpu(unsigned int cpu, struct xive_cpu *xc)
 	if (xive_pool_vps == XIVE_INVALID_VP)
 		return;
 
+	/* Check if pool VP already active, if it is, pull it */
+	if (in_be32(xive_tima + TM_QW2_HV_POOL + TM_WORD2) & TM_QW2W2_VP)
+		in_be64(xive_tima + TM_SPC_PULL_POOL_CTX);
+
 	/* Enable the pool VP */
 	vp = xive_pool_vps + cpu;
 	pr_debug("CPU %d setting up pool VP 0x%x\n", cpu, vp);
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-08-08 14:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-11  5:17 [PATCH 1/3] powerpc/xive: Fix trying to "push" an already active pool VP Benjamin Herrenschmidt
2018-04-11  5:18 ` [PATCH 2/3] powerpc/xive: Remove now useless pr_debug statements Benjamin Herrenschmidt
2018-08-08 14:25   ` [2/3] " Michael Ellerman
2018-04-11  5:18 ` [PATCH 3/3] powerpc/xive: Remove xive_kexec_teardown_cpu() Benjamin Herrenschmidt
2018-08-08 14:25   ` [3/3] " Michael Ellerman
2018-04-11  5:20 ` [PATCH 1/3] powerpc/xive: Fix trying to "push" an already active pool VP Benjamin Herrenschmidt
2018-04-19 13:42 ` [1/3] " Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).