From 15b24106a21bf2aaf5dbde330d014c4720f48e49 Mon Sep 17 00:00:00 2001 From: Evangelos Foutras Date: Sun, 7 Dec 2014 07:55:17 +0000 Subject: [PATCH] New upstream release. - Limit the microcode reloading to 64-bit for now (FS#42689, FS#42820). --- PKGBUILD | 8 ++--- fix_CPU0_microcode_on_resume.patch | 56 +++++++++++++++++++++++++++--- 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 83cec25..bf4217b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,8 +4,8 @@ pkgbase=linux # Build stock -ARCH kernel #pkgbase=linux-custom # Build kernel with a different name _srcname=linux-3.17 -pkgver=3.17.4 -pkgrel=2 +pkgver=3.17.5 +pkgrel=1 arch=('i686' 'x86_64') url="http://www.kernel.org/" license=('GPL2') @@ -21,12 +21,12 @@ source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz" 'fix_CPU0_microcode_on_resume.patch' ) sha256sums=('f5153ec93c5fcd41b247950e6a9bcbc63fa87beafd112c133a622439a0f76251' - 'eeef37397a15245bd143569908be40622a87dc7673965e623e811ea3f68b8434' + '435a8a3c4faad53b5f9f0349629358a7d273e6ca94ffeb226c1d360787cc7278' 'ea9de72fe335055f6e8eebd1d85cad150a47a81004bb27d78f18f2591fd3bbd5' '66fc95823d3c99167532f37c07e9582d305961103997fcc61cfc7f6a86b34130' 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99' - '4eb64c2520e9bcdff47d757946011b4bf9896186d285361f18364c7ff9b2c699') + 'fa48f83498bbef85dbe4b39eb88f89aac4dd2591232a3f13ec029fc44b0f497a') _kernelname=${pkgbase#linux} diff --git a/fix_CPU0_microcode_on_resume.patch b/fix_CPU0_microcode_on_resume.patch index 1f10c3a..b3fe338 100644 --- a/fix_CPU0_microcode_on_resume.patch +++ b/fix_CPU0_microcode_on_resume.patch @@ -1,7 +1,7 @@ From fb86b97300d930b57471068720c52bfa8622eab7 Mon Sep 17 00:00:00 2001 From: Borislav Petkov Date: Tue, 18 Nov 2014 10:46:57 +0100 -Subject: [PATCH] x86, microcode: Update BSPs microcode on resume +Subject: x86, microcode: Update BSPs microcode on resume In the situation when we apply early microcode but do *not* apply late microcode, we fail to update the BSP's microcode on resume because we @@ -18,9 +18,6 @@ Cc: # v3.9 Signed-off-by: Borislav Petkov Link: http://lkml.kernel.org/r/20141118094657.GA6635@pd.tnic Signed-off-by: Thomas Gleixner ---- - arch/x86/kernel/cpu/microcode/core.c | 8 ++++++++ - 1 file changed, 8 insertions(+) diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c index dd9d619..2ce9051 100644 @@ -42,5 +39,54 @@ index dd9d619..2ce9051 100644 static struct syscore_ops mc_syscore_ops = { -- -2.1.3 +cgit v0.10.1 + +From 02ecc41abcea4ff9291d548f6f846b29b354ddd2 Mon Sep 17 00:00:00 2001 +From: Borislav Petkov +Date: Sun, 30 Nov 2014 14:26:39 +0100 +Subject: x86, microcode: Limit the microcode reloading to 64-bit for now + +First, there was this: https://bugzilla.kernel.org/show_bug.cgi?id=88001 + +The problem there was that microcode patches are not being reapplied +after suspend-to-ram. It was important to reapply them, though, because +of for example Haswell's TSX erratum which disabled TSX instructions +with a microcode patch. + +A simple fix was fb86b97300d9 ("x86, microcode: Update BSPs microcode +on resume") but, as it is often the case, simple fixes are too +simple. This one causes 32-bit resume to fail: + +https://bugzilla.kernel.org/show_bug.cgi?id=88391 + +Properly fixing this would require more involved changes for which it +is too late now, right before the merge window. Thus, limit this to +64-bit only temporarily. + +Signed-off-by: Borislav Petkov +Link: http://lkml.kernel.org/r/1417353999-32236-1-git-send-email-bp@alien8.de +Signed-off-by: Thomas Gleixner + +diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c +index 2ce9051..08fe6e8 100644 +--- a/arch/x86/kernel/cpu/microcode/core.c ++++ b/arch/x86/kernel/cpu/microcode/core.c +@@ -465,6 +465,7 @@ static void mc_bp_resume(void) + + if (uci->valid && uci->mc) + microcode_ops->apply_microcode(cpu); ++#ifdef CONFIG_X86_64 + else if (!uci->mc) + /* + * We might resume and not have applied late microcode but still +@@ -473,6 +474,7 @@ static void mc_bp_resume(void) + * applying patches early on the APs. + */ + load_ucode_ap(); ++#endif + } + + static struct syscore_ops mc_syscore_ops = { +-- +cgit v0.10.1