summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2014-12-15 14:39:28 -0500
committerJosh Boyer <jwboyer@fedoraproject.org>2014-12-15 14:40:37 -0500
commit59879cba34ee74208a9cc772c2a63f0a5d8d6192 (patch)
tree8306aaa8709918b0ca76fe9bec1018cacaa7b8cd
parentc47527ae073c62f705ebbfc6c590452999b70298 (diff)
downloadkernel-59879cba34ee74208a9cc772c2a63f0a5d8d6192.tar.gz
kernel-59879cba34ee74208a9cc772c2a63f0a5d8d6192.tar.xz
kernel-59879cba34ee74208a9cc772c2a63f0a5d8d6192.zip
Fix ppc64 boot with smt-enabled=off (rhbz 1173806)
-rw-r--r--kernel.spec7
-rw-r--r--powerpc-powernv-force-all-CPUs-to-be-bootable.patch46
2 files changed, 53 insertions, 0 deletions
diff --git a/kernel.spec b/kernel.spec
index 08113625..63556da2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -638,6 +638,9 @@ Patch26096: cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch
#CVE-2014-8133 rhbz 1172797 1174374
Patch26100: x86-tls-Validate-TLS-entries-to-protect-espfix.patch
+#rhbz 1173806
+Patch26101: powerpc-powernv-force-all-CPUs-to-be-bootable.patch
+
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
Patch30000: kernel-arm64.patch
@@ -1386,6 +1389,9 @@ ApplyPatch cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch
#CVE-2014-8133 rhbz 1172797 1174374
ApplyPatch x86-tls-Validate-TLS-entries-to-protect-espfix.patch
+#rhbz 1173806
+ApplyPatch powerpc-powernv-force-all-CPUs-to-be-bootable.patch
+
%if 0%{?aarch64patches}
ApplyPatch kernel-arm64.patch
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
@@ -2261,6 +2267,7 @@ fi
# || ||
%changelog
* Mon Dec 15 2014 Josh Boyer <jwboyer@fedoraproject.org>
+- Fix ppc64 boot with smt-enabled=off (rhbz 1173806)
- CVE-2014-8133 x86: espfix(64) bypass via set_thread_area and CLONE_SETTLS (rhbz 1172797 1174374)
* Fri Dec 12 2014 Kyle McMartin <kyle@fedoraproject.org>
diff --git a/powerpc-powernv-force-all-CPUs-to-be-bootable.patch b/powerpc-powernv-force-all-CPUs-to-be-bootable.patch
new file mode 100644
index 00000000..1c0b6233
--- /dev/null
+++ b/powerpc-powernv-force-all-CPUs-to-be-bootable.patch
@@ -0,0 +1,46 @@
+From: Greg Kurz <gkurz@linux.vnet.ibm.com>
+Date: Fri, 12 Dec 2014 12:37:40 +0100
+Subject: [PATCH] powerpc/powernv: force all CPUs to be bootable
+
+The subcore logic needs all the CPUs declared in the DT to be bootable,
+otherwise the kernel hangs at boot time. Since subcore support starts
+with POWER8, we can keep the current behaviour for older CPUs.
+
+Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
+---
+ arch/powerpc/platforms/powernv/smp.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c
+index 5fcfcf44e3a9..52552e60df36 100644
+--- a/arch/powerpc/platforms/powernv/smp.c
++++ b/arch/powerpc/platforms/powernv/smp.c
+@@ -185,13 +185,24 @@ static void pnv_smp_cpu_kill_self(void)
+
+ #endif /* CONFIG_HOTPLUG_CPU */
+
++static int pnv_cpu_bootable(unsigned int nr)
++{
++ /* Starting with POWER8, all CPUs need to be booted to avoid hangs
++ * during subcore init.
++ */
++ if (cpu_has_feature(CPU_FTR_ARCH_207S))
++ return 1;
++
++ return smp_generic_cpu_bootable(nr);
++}
++
+ static struct smp_ops_t pnv_smp_ops = {
+ .message_pass = smp_muxed_ipi_message_pass,
+ .cause_ipi = NULL, /* Filled at runtime by xics_smp_probe() */
+ .probe = xics_smp_probe,
+ .kick_cpu = pnv_smp_kick_cpu,
+ .setup_cpu = pnv_smp_setup_cpu,
+- .cpu_bootable = smp_generic_cpu_bootable,
++ .cpu_bootable = pnv_cpu_bootable,
+ #ifdef CONFIG_HOTPLUG_CPU
+ .cpu_disable = pnv_smp_cpu_disable,
+ .cpu_die = generic_cpu_die,
+--
+2.1.0
+