aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-09-17 11:05:54 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-09-17 11:05:54 -0400
commitc44d1ac0c38e24e6463a02fef315ec0b73304b96 (patch)
treedcd343547b8201848a0c3894bd980b13adf05df9
parent2bd6bf03f4c1c59381d62c61d03f6cc3fe71f66e (diff)
parentf7f3dc00f61261cdc9ccd8b886f21bc4dffd6fd9 (diff)
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fix from Thomas Gleixner: "A single fix addressing the missing CP8 feature bit in CPUID for a range of AMD ZEN models/mask revisions" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/cpu/AMD: Fix erratum 1076 (CPB bit)
-rw-r--r--arch/x86/kernel/cpu/amd.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 9862e2cd6d93..d58184b7cd44 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -763,6 +763,16 @@ static void init_amd_bd(struct cpuinfo_x86 *c)
763 } 763 }
764} 764}
765 765
766static void init_amd_zn(struct cpuinfo_x86 *c)
767{
768 /*
769 * Fix erratum 1076: CPB feature bit not being set in CPUID. It affects
770 * all up to and including B1.
771 */
772 if (c->x86_model <= 1 && c->x86_mask <= 1)
773 set_cpu_cap(c, X86_FEATURE_CPB);
774}
775
766static void init_amd(struct cpuinfo_x86 *c) 776static void init_amd(struct cpuinfo_x86 *c)
767{ 777{
768 early_init_amd(c); 778 early_init_amd(c);
@@ -791,6 +801,7 @@ static void init_amd(struct cpuinfo_x86 *c)
791 case 0x10: init_amd_gh(c); break; 801 case 0x10: init_amd_gh(c); break;
792 case 0x12: init_amd_ln(c); break; 802 case 0x12: init_amd_ln(c); break;
793 case 0x15: init_amd_bd(c); break; 803 case 0x15: init_amd_bd(c); break;
804 case 0x17: init_amd_zn(c); break;
794 } 805 }
795 806
796 /* Enable workaround for FXSAVE leak */ 807 /* Enable workaround for FXSAVE leak */