APPLIED: [PATCH] [bionic] powerpc/xive: Fix trying to "push" an already active pool VP
Kleber Souza
kleber.souza at canonical.com
Wed Apr 18 08:04:14 UTC 2018
On 04/12/18 17:17, Breno Leitao wrote:
> From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
>
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1763386
>
> 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 at kernel.crashing.org>
> Link: https://patchwork.ozlabs.org/patch/897035/
> Signed-off-by: Breno Leitao <breno.leitao at gmail.com>
>
> diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
> index ebc244b08d67..0f89ee557b04 100644
> --- a/arch/powerpc/sysdev/xive/native.c
> +++ b/arch/powerpc/sysdev/xive/native.c
> @@ -388,6 +388,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);
>
This patch has already been applied to bionic/master-next branch:
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/commit/?h=master-next&id=78618bd6ea5c687560a4c7315762020bc6d7c7ce
Thanks,
Kleber
More information about the kernel-team
mailing list