[3.11.y.z extended stable] Patch "powerpc: Don't setup CPUs with bad status" has been added to staging queue
Michael Neuling
mikey at neuling.org
Thu Jun 26 14:14:25 UTC 2014
Luis,
We should also include this patch that just went upstream:
commit 6663a4fa6711050036562ddfd2086edf735fae21
Author: Scott Wood <scottwood at freescale.com>
powerpc: Don't skip ePAPR spin-table CPUs
This fixes this an issue with this patch on embedded powerpc
processors.
Mikey
On Thu, 2014-06-26 at 11:37 +0100, Luis Henriques wrote:
> This is a note to let you know that I have just added a patch titled
>
> powerpc: Don't setup CPUs with bad status
>
> to the linux-3.11.y-queue branch of the 3.11.y.z extended stable tree
> which can be found at:
>
> http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.11.y-queue
>
> If you, or anyone else, feels it should not be added to this tree, please
> reply to this email.
>
> For more information about the 3.11.y.z tree, see
> https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
>
> Thanks.
> -Luis
>
> ------
>
> >From 29dbefe0b5e5e631fdd0b30d608cb467bfcf094a Mon Sep 17 00:00:00 2001
> From: Michael Neuling <mikey at neuling.org>
> Date: Fri, 6 Jun 2014 14:28:51 +1000
> Subject: powerpc: Don't setup CPUs with bad status
>
> commit 59a53afe70fd530040bdc69581f03d880157f15a upstream.
>
> OPAL will mark a CPU that is guarded as "bad" in the status property of the CPU
> node.
>
> Unfortunatley Linux doesn't check this property and will put the bad CPU in the
> present map. This has caused hangs on booting when we try to unsplit the core.
>
> This patch checks the CPU is avaliable via this status property before putting
> it in the present map.
>
> Signed-off-by: Michael Neuling <mikey at neuling.org>
> Tested-by: Anton Blanchard <anton at samba.org>
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
> ---
> arch/powerpc/kernel/setup-common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
> index ee0e0553ae0e..b12be98e0972 100644
> --- a/arch/powerpc/kernel/setup-common.c
> +++ b/arch/powerpc/kernel/setup-common.c
> @@ -457,7 +457,7 @@ void __init smp_setup_cpu_maps(void)
> for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) {
> DBG(" thread %d -> cpu %d (hard id %d)\n",
> j, cpu, be32_to_cpu(intserv[j]));
> - set_cpu_present(cpu, true);
> + set_cpu_present(cpu, of_device_is_available(dn));
> set_hard_smp_processor_id(cpu, be32_to_cpu(intserv[j]));
> set_cpu_possible(cpu, true);
> cpu++;
> --
> 1.9.1
>
More information about the kernel-team
mailing list