From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B896C54E76 for ; Mon, 20 Nov 2023 10:42:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233173AbjKTKmS (ORCPT ); Mon, 20 Nov 2023 05:42:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53082 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232566AbjKTKmO (ORCPT ); Mon, 20 Nov 2023 05:42:14 -0500 Received: from mail.alien8.de (mail.alien8.de [IPv6:2a01:4f9:3051:3f93::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 44246CA for ; Mon, 20 Nov 2023 02:42:10 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 7382040E0199; Mon, 20 Nov 2023 10:42:08 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id RkOOUOSPk8KA; Mon, 20 Nov 2023 10:42:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476925; bh=HxttFcqjU7pq71AIEFYdAjIvuj4XO+qvt4ZK4/zq++U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dlDFrVYYBJfJEwXM4O5nSh0jip04X+D96XbQtfFOgJDd1beZfTwZc5+OLZyQoKPyX zGGf2olJrYxTT4eSaTC97VxMFE6YYFvgD0bg6msN+hV/AYBjGmOA90vJ1dBEBfaSnG gIvElgm8CT75xSMeF/9/X+w14DHAbwRhseZkKjYuj+rZNz5cbTLkyvevhOOeFXmx6f WB8v5c+By/pcyE6HwwZBhoHDeI+mnbvzlCGu/PKiPH+pSe/xyTXGkLb71TzA/nIc1S +9FXpaHXOzrrT1LtY8dqBBt9eUU0MmX2vItpsOSBTeP4ZokLqb01PMyIQLSzqAuvNe xQfsPQacrBlKvEdteSyRCJuU/D/LrglJUpI9N2HX7WrS4dHnELMVGQA/VTBhkDhpKN HeXCIItYhtHoM5A7LnARnZ533EvPHfBi3lldQJqNWsrYyJgDrlHnm3yAGk51nAh+Sl bB+UaKJHODEePzhYmNY+RPYRE827Pst7+w4RKen8O7hRrzIHavAWhMgRAaIrF5xdPy u+BUJaKBj7WleaRDDp1aXloKvvY/EEHovQXzNPzy8hgoCL6ijKde0936gqKr2BoiL6 yrD74wcbg0rU7lLd9ygCJWKMX++jbYOSTLwMYp3A2dFefWhf3ZESuydWYJFB3wCuG1 BuiRogp2cqZOIlEnWiIIxnGQ= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 91C1A40E0031; Mon, 20 Nov 2023 10:42:03 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 01/13] x86/CPU/AMD: Add ZenX generations flags Date: Mon, 20 Nov 2023 11:41:40 +0100 Message-ID: <20231120104152.13740-2-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Add X86_FEATURE flags for each Zen generation. They should be used from now on instead of checking f/m/s. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/include/asm/cpufeatures.h | 6 ++- arch/x86/kernel/cpu/amd.c | 70 +++++++++++++++++++++++++++++- 2 files changed, 72 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpuf= eatures.h index 4af140cf5719..6f6cf49e9891 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -218,7 +218,7 @@ #define X86_FEATURE_IBRS ( 7*32+25) /* Indirect Branch Restricted Specula= tion */ #define X86_FEATURE_IBPB ( 7*32+26) /* Indirect Branch Prediction Barrier= */ #define X86_FEATURE_STIBP ( 7*32+27) /* Single Thread Indirect Branch Pre= dictors */ -#define X86_FEATURE_ZEN (7*32+28) /* "" CPU based on Zen microarchitectu= re */ +#define X86_FEATURE_ZEN ( 7*32+28) /* "" CPU based on Zen microarchitect= ure */ #define X86_FEATURE_L1TF_PTEINV ( 7*32+29) /* "" L1TF workaround PTE inve= rsion */ #define X86_FEATURE_IBRS_ENHANCED ( 7*32+30) /* Enhanced IBRS */ #define X86_FEATURE_MSR_IA32_FEAT_CTL ( 7*32+31) /* "" MSR IA32_FEAT_CTL c= onfigured */ @@ -308,10 +308,12 @@ #define X86_FEATURE_SMBA (11*32+21) /* "" Slow Memory Bandwidth Allocatio= n */ #define X86_FEATURE_BMEC (11*32+22) /* "" Bandwidth Monitoring Event Conf= iguration */ #define X86_FEATURE_USER_SHSTK (11*32+23) /* Shadow stack support for use= r mode applications */ - #define X86_FEATURE_SRSO (11*32+24) /* "" AMD BTB untrain RETs */ #define X86_FEATURE_SRSO_ALIAS (11*32+25) /* "" AMD BTB untrain RETs thro= ugh aliasing */ #define X86_FEATURE_IBPB_ON_VMEXIT (11*32+26) /* "" Issue an IBPB only on = VMEXIT */ +#define X86_FEATURE_ZEN2 (11*32+27) /* "" CPU based on Zen2 microarchitec= ture */ +#define X86_FEATURE_ZEN3 (11*32+28) /* "" CPU based on Zen3 microarchitec= ture */ +#define X86_FEATURE_ZEN4 (11*32+29) /* "" CPU based on Zen4 microarchitec= ture */ =20 /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index a7eab05e5f29..fa6ba63ca7e2 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -616,6 +616,49 @@ static void bsp_init_amd(struct cpuinfo_x86 *c) } =20 resctrl_cpu_detect(c); + + /* Figure out Zen generations: */ + switch (c->x86) { + case 0x17: { + switch (c->x86_model) { + case 0x00 ... 0x2f: + case 0x50 ... 0x5f: + setup_force_cpu_cap(X86_FEATURE_ZEN); + break; + case 0x30 ... 0x4f: + case 0x60 ... 0x7f: + case 0x90 ... 0x91: + case 0xa0 ... 0xaf: + setup_force_cpu_cap(X86_FEATURE_ZEN2); + break; + default: + goto warn; + } + break; + } + case 0x19: { + switch (c->x86_model) { + case 0x00 ... 0x0f: + case 0x20 ... 0x5f: + setup_force_cpu_cap(X86_FEATURE_ZEN3); + break; + case 0x10 ... 0x1f: + case 0x60 ... 0xaf: + setup_force_cpu_cap(X86_FEATURE_ZEN4); + break; + default: + goto warn; + } + break; + } + default: + break; + } + + return; + +warn: + WARN_ONCE(1, "Family 0x%x, model: 0x%x??\n", c->x86, c->x86_model); } =20 static void early_detect_mem_encrypt(struct cpuinfo_x86 *c) @@ -974,8 +1017,6 @@ void init_spectral_chicken(struct cpuinfo_x86 *c) =20 static void init_amd_zn(struct cpuinfo_x86 *c) { - set_cpu_cap(c, X86_FEATURE_ZEN); - #ifdef CONFIG_NUMA node_reclaim_distance =3D 32; #endif @@ -997,6 +1038,22 @@ static void init_amd_zn(struct cpuinfo_x86 *c) } } =20 +static void init_amd_zen(struct cpuinfo_x86 *c) +{ +} + +static void init_amd_zen2(struct cpuinfo_x86 *c) +{ +} + +static void init_amd_zen3(struct cpuinfo_x86 *c) +{ +} + +static void init_amd_zen4(struct cpuinfo_x86 *c) +{ +} + static bool cpu_has_zenbleed_microcode(void) { u32 good_rev =3D 0; @@ -1077,6 +1134,15 @@ static void init_amd(struct cpuinfo_x86 *c) case 0x19: init_amd_zn(c); break; } =20 + if (boot_cpu_has(X86_FEATURE_ZEN)) + init_amd_zen(c); + else if (boot_cpu_has(X86_FEATURE_ZEN2)) + init_amd_zen2(c); + else if (boot_cpu_has(X86_FEATURE_ZEN3)) + init_amd_zen3(c); + else if (boot_cpu_has(X86_FEATURE_ZEN4)) + init_amd_zen4(c); + /* * Enable workaround for FXSAVE leak on CPUs * without a XSaveErPtr feature --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08204C197A0 for ; Mon, 20 Nov 2023 10:42:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233189AbjKTKmV (ORCPT ); Mon, 20 Nov 2023 05:42:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53096 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233169AbjKTKmR (ORCPT ); Mon, 20 Nov 2023 05:42:17 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5EE2ACA for ; Mon, 20 Nov 2023 02:42:14 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id DAE3740E0191; Mon, 20 Nov 2023 10:42:12 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id zQK2PZAC1s1k; Mon, 20 Nov 2023 10:42:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476929; bh=dv3r8X4PHcRGZmkccWpMHrdFrdRvuJJOngRouvfj1cI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kvheRbZgGhDZDztAyWLdFiT2cZuMpgLvBcqrYW+D7vobax6NfFD0mf/Cpnx3X17+6 pzxJxMNRT/hPi7F+/ErWPgJNFtne/BCNWqu5q9qbiaBrOOGGohLtq95IQtcf2rzicB LPCY2kFEreePjhWkvyH+wJDhSO+HioKRw4HGT6Vpi8+Mn53Q4oY2vAXg7MF4UAftRu O3xkCwTHFrAdjrG+t+muI2kNdjmJtdejZwjpvYsZ15ttZ+xhOj8v/bmhwxZDaP+pf5 z+BD4WfkEWHiWWBPN0b1TarApXOOI8X/l0OTuFKjzE1ZqQmafdd0QdB+nJRSvZnOBx RRQiTURetORNbTlVcH8DQzXeYr4c1KH2eg4oa8GauobXA1YA9iHVldq5PNaWOMDkMc SlPyiV1A4Vc0uR3HFVNjFnxQA3A+mmy6heAqz6nA7+m/QPZXjRBC5QcWiW9+ZwipVa kzA7n+5FwGbOQ7Kl+DPb3EzgHO77hkvqlJGqi7JcMlzz3xBmQNWVtbVXm/K3C6TjiI Zi8ramvdJP9MXKxLcYruG6uOQrzlb8b5qELG3aUETUIk/oJQ5sr8Dz4iLmuNoP75MD tAXxh1lxG0LTOFxNsGCPnmesd4Yd4KZFM4jq7A3sTJ7fyFjxSuDVeOnRflRvvkhzLO DNHSqYGJorxQpvRy00rJedDw= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 6283440E0030; Mon, 20 Nov 2023 10:42:07 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 02/13] x86/CPU/AMD: Carve out the erratum 1386 fix Date: Mon, 20 Nov 2023 11:41:41 +0100 Message-ID: <20231120104152.13740-3-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Call it on the affected CPU generations. No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index fa6ba63ca7e2..b3f939101368 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -984,6 +984,19 @@ static void init_amd_bd(struct cpuinfo_x86 *c) clear_rdrand_cpuid_bit(c); } =20 +static void fix_erratum_1386(struct cpuinfo_x86 *c) +{ + /* + * Work around Erratum 1386. The XSAVES instruction malfunctions in + * certain circumstances on Zen1/2 uarch, and not all parts have had + * updated microcode at the time of writing (March 2023). + * + * Affected parts all have no supervisor XSAVE states, meaning that + * the XSAVEC instruction (which works fine) is equivalent. + */ + clear_cpu_cap(c, X86_FEATURE_XSAVES); +} + void init_spectral_chicken(struct cpuinfo_x86 *c) { #ifdef CONFIG_CPU_UNRET_ENTRY @@ -1004,15 +1017,6 @@ void init_spectral_chicken(struct cpuinfo_x86 *c) } } #endif - /* - * Work around Erratum 1386. The XSAVES instruction malfunctions in - * certain circumstances on Zen1/2 uarch, and not all parts have had - * updated microcode at the time of writing (March 2023). - * - * Affected parts all have no supervisor XSAVE states, meaning that - * the XSAVEC instruction (which works fine) is equivalent. - */ - clear_cpu_cap(c, X86_FEATURE_XSAVES); } =20 static void init_amd_zn(struct cpuinfo_x86 *c) @@ -1040,10 +1044,12 @@ static void init_amd_zn(struct cpuinfo_x86 *c) =20 static void init_amd_zen(struct cpuinfo_x86 *c) { + fix_erratum_1386(c); } =20 static void init_amd_zen2(struct cpuinfo_x86 *c) { + fix_erratum_1386(c); } =20 static void init_amd_zen3(struct cpuinfo_x86 *c) --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1FCC3C54E76 for ; Mon, 20 Nov 2023 10:42:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233182AbjKTKm2 (ORCPT ); Mon, 20 Nov 2023 05:42:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233185AbjKTKmU (ORCPT ); Mon, 20 Nov 2023 05:42:20 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE209F1 for ; Mon, 20 Nov 2023 02:42:16 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 5A74040E01A4; Mon, 20 Nov 2023 10:42:15 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id mUTZmNe3o_yt; Mon, 20 Nov 2023 10:42:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476933; bh=zSsMqSBzaGE3GgC230bZyMSbMWkZEifLyp6tOh9UKYU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GcXwUuf3TIxj6wQEkO/VjCeM4dRufo8nMzORXihxsDqHvx3xwAX6jn9dPNM35LGUM KjPWSqvhxIkto8BGAeJ5ZAOBlt/sIPHg411HYH7k1+mC8jXc7KQmodVYl7e5+pth6X tRp+vIvfB4vMCWdlcmCFK25+ymVcb8WUUltWD6RBfd9fS2tRftVG1peeWJEjR/bma2 YhT5WPVUuV8Ioia3QIFta+9HIvWZiXm6kxlg1uklmnBE4ZXhkedoO4XNiwTMVFPyXB xkrspt2TkUXxYtJS5liS2on+KsLHE316IBU7+TKXQjZH29VZ4swHkvCxbzowDubx2c U4NdoWuCKYN0O3ENXik7RFzx0wGC+6twroXrflyboJISN9YFz8rUWlAv3mIvsYWuN2 f7Rnrpx5Uxaa+FyqbEclbM9GjiXcfRMkSFL56/6oWz5pG2n1EiAtaxo7/1rtlHVpcJ pc4yNMHI+Mb3OFzPlsuvBbPEtf4BIL3/gRLC+Y6OPiLQlfeG1w5ZIQYM1YnRd2C4HP 1BHe+B1+LmYp/Ovo1Y5S0bVtMyOR8yPKwzy3t9GJ6DP96TYd2H3yoH0z9DLtEOFl2L AUoK/12epO/9ePpIKs5lLDLCuTsnFe/1baD//F3qSNGblayhh1BAI6HtYLSyvjkBT5 5iv/cPDQfCF8PWH4y9YsSIIU= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 0800740E0031; Mon, 20 Nov 2023 10:42:10 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 03/13] x86/CPU/AMD: Move the Zen3 BTC_NO detection to the Zen3 init function Date: Mon, 20 Nov 2023 11:41:42 +0100 Message-ID: <20231120104152.13740-4-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index b3f939101368..92202bad9bd3 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1031,14 +1031,6 @@ static void init_amd_zn(struct cpuinfo_x86 *c) /* Erratum 1076: CPB feature bit not being set in CPUID. */ if (!cpu_has(c, X86_FEATURE_CPB)) set_cpu_cap(c, X86_FEATURE_CPB); - - /* - * Zen3 (Fam19 model < 0x10) parts are not susceptible to - * Branch Type Confusion, but predate the allocation of the - * BTC_NO bit. - */ - if (c->x86 =3D=3D 0x19 && !cpu_has(c, X86_FEATURE_BTC_NO)) - set_cpu_cap(c, X86_FEATURE_BTC_NO); } } =20 @@ -1054,6 +1046,15 @@ static void init_amd_zen2(struct cpuinfo_x86 *c) =20 static void init_amd_zen3(struct cpuinfo_x86 *c) { + if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { + /* + * Zen3 (Fam19 model < 0x10) parts are not susceptible to + * Branch Type Confusion, but predate the allocation of the + * BTC_NO bit. + */ + if (!cpu_has(c, X86_FEATURE_BTC_NO)) + set_cpu_cap(c, X86_FEATURE_BTC_NO); + } } =20 static void init_amd_zen4(struct cpuinfo_x86 *c) --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87440C54FB9 for ; Mon, 20 Nov 2023 10:42:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232996AbjKTKma (ORCPT ); Mon, 20 Nov 2023 05:42:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233212AbjKTKm0 (ORCPT ); Mon, 20 Nov 2023 05:42:26 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 234AA131 for ; Mon, 20 Nov 2023 02:42:21 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 62CA740E01A4; Mon, 20 Nov 2023 10:42:19 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id U9lP6dp0nkUo; Mon, 20 Nov 2023 10:42:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476936; bh=DySgw/1dED05SP7datXJO+HR26dVzWR7bSCTZBHiUw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V8o27gEMwrOButFakYWW0vpmJEeZmFXaQfBAEjSK7yKDOOdT3hH7XhhNitq92XUL/ IF6ZF2qhZcuy3cwk2C6v2FH0+vJlQ1lhao+Q8KDuMln+l06lIstfgcgffsIe6POAQC UNvZqHYkxV5vc5eTp2yAwtzZfG/5M1y7pROFyE731/j1FhfXlUTz6c51+/17RyfXSq AtY6/ggVpW9LAeZiVTn4jVL/qye9CgFbxGKu8ywnDAwt/CPSKy5oivxwlAMMddpSfq 3/BFxouFi2+5abL7+l7dWqL0cMZra5Nipty0Xbkqdl2ZE7O/pV9Pj6GFUr9jojvF7v 1oU5xMywnFZwNqHr/N3XShaMBsnDtnBPwHezFrbMSXRrhXg759q07MuTrQtVQ2uNSK jopNTZbuwh6fvtDdbUXHrpJo9GVrP8g6YId3sl+SFj2r3nuikdWha/Xu4iWgAlbv80 oTw7XLvmC3Jsz8oT1jHXqfkIYwE+7d7s5363BM6thjP72GZQ5zkVNnio6B40xuy4TY IoN4ILZrTSgsVayU4MR38L9+X2Fbaye9o11puMq3GvXC/9RXaBLgTOn/pxLwO/Nm/D N2ASOAteLI13CYeEcVTpxGd/XUYh9URRbLrwHUR3/B43Ufeb3A7Noh9/zbkkFlWWse G5Vet65elDTDZcwVPZUIYpms= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id AF21140E0199; Mon, 20 Nov 2023 10:42:14 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 04/13] x86/CPU/AMD: Move erratum 1076 fix into the Zen1 init function Date: Mon, 20 Nov 2023 11:41:43 +0100 Message-ID: <20231120104152.13740-5-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 92202bad9bd3..6d87c43e4ee9 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1024,6 +1024,11 @@ static void init_amd_zn(struct cpuinfo_x86 *c) #ifdef CONFIG_NUMA node_reclaim_distance =3D 32; #endif +} + +static void init_amd_zen(struct cpuinfo_x86 *c) +{ + fix_erratum_1386(c); =20 /* Fix up CPUID bits, but only if not virtualised. */ if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { @@ -1034,11 +1039,6 @@ static void init_amd_zn(struct cpuinfo_x86 *c) } } =20 -static void init_amd_zen(struct cpuinfo_x86 *c) -{ - fix_erratum_1386(c); -} - static void init_amd_zen2(struct cpuinfo_x86 *c) { fix_erratum_1386(c); --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2313DC197A0 for ; Mon, 20 Nov 2023 10:42:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233283AbjKTKmi (ORCPT ); Mon, 20 Nov 2023 05:42:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233200AbjKTKm2 (ORCPT ); Mon, 20 Nov 2023 05:42:28 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73FD3C5 for ; Mon, 20 Nov 2023 02:42:24 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id ACD9340E01A4; Mon, 20 Nov 2023 10:42:22 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id KxakAPnY9eKD; Mon, 20 Nov 2023 10:42:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476940; bh=Ak+9T+Upn9tPqHpt7fwMUcIjPgnr6VqaxzGs8MwZUrA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dyMvxKwqFiKuRmklu5eZT5TFr2VTiFJdgHnlCBvFowIn9DDapnd57dV3yYhcDlzVI 5kqa90ZBRtBKcgXM2kt6+XJIp8ydcz25ERNVXmHxpITq4qc3xMY8qeDGITwmmuXVcR G0gAqkyoIlBrlqqt5C+83vJbR/mTG/h/7gD1KldYUEdgFmuhhhB0GiUWNm+jhBykl9 4RAisLkfEWjhgfyhdvtR2Lmr+0NS3vSKjbbjml9tjbVN41A4BYXykT4fWknfWwQOrO 92+33eTGAU4Pqg7UN0FeVTIPmyRmUcdHIUvJRyPPxX+VNHlnDzkQ3SBqkhm7U1MuBV GeCsN4bE3B6HP3hvDuE4fZRrRKCjfTYKbtI4v6VOqQUtgyNyowxKFReGIXGSMjhCpy NhyS/IoxJjMUmVT5yrCxNiDDo42WfjMfMybnoEghEmFtXTnzrG+ChViL1LP8ZgUM+p CMATVR0jugzSAFRsdbFXbs4t8B86n/jCQfNSobuAqs36dbGRIP5U9pgAdF5yJSCthj t191OMF6Nes6KwbulI1xRY2CLr0s4mSjpUD4WDXNmsKjYj0ws+W/cmHBBqpuJ4Xrdv b3QqPOQuj8+1aohYyID0RoobnL4gWBJaZh2GSOW5WUdZ2pBWMyoGXrTAOaGRPOMea3 Ep7APjk59w/aYT57VcRArH9Y= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 600AD40E0031; Mon, 20 Nov 2023 10:42:18 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 05/13] x86/CPU/AMD: Call the spectral chicken in the Zen2 init function Date: Mon, 20 Nov 2023 11:41:44 +0100 Message-ID: <20231120104152.13740-6-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" No functional change. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 6d87c43e4ee9..f43a70d495da 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1007,10 +1007,8 @@ void init_spectral_chicken(struct cpuinfo_x86 *c) * * This suppresses speculation from the middle of a basic block, i.e. it * suppresses non-branch predictions. - * - * We use STIBP as a heuristic to filter out Zen2 from the rest of F17H */ - if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && cpu_has(c, X86_FEATURE_AMD_STI= BP)) { + if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { if (!rdmsrl_safe(MSR_ZEN2_SPECTRAL_CHICKEN, &value)) { value |=3D MSR_ZEN2_SPECTRAL_CHICKEN_BIT; wrmsrl_safe(MSR_ZEN2_SPECTRAL_CHICKEN, value); @@ -1041,6 +1039,7 @@ static void init_amd_zen(struct cpuinfo_x86 *c) =20 static void init_amd_zen2(struct cpuinfo_x86 *c) { + init_spectral_chicken(c); fix_erratum_1386(c); } =20 @@ -1136,7 +1135,7 @@ static void init_amd(struct cpuinfo_x86 *c) case 0x12: init_amd_ln(c); break; case 0x15: init_amd_bd(c); break; case 0x16: init_amd_jg(c); break; - case 0x17: init_spectral_chicken(c); + case 0x17: fallthrough; case 0x19: init_amd_zn(c); break; } --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F98EC197A0 for ; Mon, 20 Nov 2023 10:43:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233259AbjKTKna (ORCPT ); Mon, 20 Nov 2023 05:43:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45844 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233169AbjKTKmz (ORCPT ); Mon, 20 Nov 2023 05:42:55 -0500 Received: from mail.alien8.de (mail.alien8.de [IPv6:2a01:4f9:3051:3f93::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D574D7A for ; Mon, 20 Nov 2023 02:42:38 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id CDCA640E01BB; Mon, 20 Nov 2023 10:42:36 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id rW2bzRskiw9H; Mon, 20 Nov 2023 10:42:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476943; bh=8VW8eysMQa0djm7KxcVc0hk/6wK18+5mMT7sLtuADpk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J6YbZer+M5FkO4bn0RIg9PcN+Yjh3s844hrgbxqz6puXqQdjBpqQhIkpVggr0Vnyt cKXlVYe6rBAKPez1gdRt31UwV5eWPy1zxo4MEN55IihCAYQLZodXRIusx291aXbdtH FeIMr8sCGgnQO44Mtl+9wDLdkm3QovhX4FviixpYsZlaLy0PtiG7IplyanfjJweHl1 W0ut6GI/7X8KobjRJMvOHA6a0jmGED7mVF9XaJeaX2OzFTIfB06j+ESQYQTk1BsJWQ wVigJgfWcQxsNhwK09TiYpXWV/n74QlrOz1tQxpA+ub0oDH0o9tuWQdfwNV/ydvOQZ xtos10Jf+LHmgCL4CozhobDiRKCUgelrHUnwfSJ0WX4HV4b6TqusEchQWox4jyMmG6 dSQIkTprKRRvbRPOmfL2L2V0qj15hE8tiNFPaj/kelDuiRv3237qNhkuiAR31i3gLn pCTWbAkWDY110pm0vip5xAxkfs/45fQmm9ckF6g7c5FNk4xf89U4qNTmU0Q9BNlEzs LoQFpKWEVSUuZoaHwl/oV+T3oH/Q/p4/lbI5HlXhWMAOyk7P3sNKBmdltLbqKCf7Z/ F2YvxTiU122d99UotKkDkZGgXFPpHlpGZ9RtSsZ6Gb9Ccrho5L+uHal6qKzRYvIQCQ kX3zGIWv+6tDJXD8V3kRgksQ= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id A97EC40E01AF; Mon, 20 Nov 2023 10:42:21 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 06/13] x86/CPU/AMD: Rename init_amd_zn() to init_amd_zen_common() Date: Mon, 20 Nov 2023 11:41:45 +0100 Message-ID: <20231120104152.13740-7-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Call it from all Zen init functions. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index f43a70d495da..8d90f5f6b0d9 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1017,7 +1017,7 @@ void init_spectral_chicken(struct cpuinfo_x86 *c) #endif } =20 -static void init_amd_zn(struct cpuinfo_x86 *c) +static void init_amd_zen_common(void) { #ifdef CONFIG_NUMA node_reclaim_distance =3D 32; @@ -1026,6 +1026,7 @@ static void init_amd_zn(struct cpuinfo_x86 *c) =20 static void init_amd_zen(struct cpuinfo_x86 *c) { + init_amd_zen_common(); fix_erratum_1386(c); =20 /* Fix up CPUID bits, but only if not virtualised. */ @@ -1035,16 +1036,20 @@ static void init_amd_zen(struct cpuinfo_x86 *c) if (!cpu_has(c, X86_FEATURE_CPB)) set_cpu_cap(c, X86_FEATURE_CPB); } + } =20 static void init_amd_zen2(struct cpuinfo_x86 *c) { + init_amd_zen_common(); init_spectral_chicken(c); fix_erratum_1386(c); } =20 static void init_amd_zen3(struct cpuinfo_x86 *c) { + init_amd_zen_common(); + if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { /* * Zen3 (Fam19 model < 0x10) parts are not susceptible to @@ -1058,6 +1063,7 @@ static void init_amd_zen3(struct cpuinfo_x86 *c) =20 static void init_amd_zen4(struct cpuinfo_x86 *c) { + init_amd_zen_common(); } =20 static bool cpu_has_zenbleed_microcode(void) @@ -1135,9 +1141,6 @@ static void init_amd(struct cpuinfo_x86 *c) case 0x12: init_amd_ln(c); break; case 0x15: init_amd_bd(c); break; case 0x16: init_amd_jg(c); break; - case 0x17: - fallthrough; - case 0x19: init_amd_zn(c); break; } =20 if (boot_cpu_has(X86_FEATURE_ZEN)) --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB097C197A0 for ; Mon, 20 Nov 2023 10:43:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233236AbjKTKnd (ORCPT ); Mon, 20 Nov 2023 05:43:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233184AbjKTKm4 (ORCPT ); Mon, 20 Nov 2023 05:42:56 -0500 Received: from mail.alien8.de (mail.alien8.de [IPv6:2a01:4f9:3051:3f93::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C02910EA for ; Mon, 20 Nov 2023 02:42:39 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 163E940E01AF; Mon, 20 Nov 2023 10:42:38 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 3De19TxaWLSh; Mon, 20 Nov 2023 10:42:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476948; bh=b7mZX+/YHV/jz5ttaRN2Dh9DCKP1lBz9NGfieIiWDcE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G0M0t6ZXTaD1Z17gE0E9Z/wgh1AZGmcRa6arAhcaetXyA26rFCpa1jr1H8JWHS5j2 rAuRIEAYz00UIPtXO2Nc/NaZQVTHdkVoGv3E5l2U11YQ72bcptWTITUdy8xKULf/cN pbANYD5/anAFleP6otPVC0nCzQsnrWgjFQ1meiQCGlgYdz+uq6jjAX+2PXklw1YmIQ K9AGMYDJ9rKFJwK5OZDKYKcxL4s0dIpCyKAkUwBJ5oo4Y+CquKJnVHLp/Tvk04bx8N QBxHSq3uKMRELVbtdt/37AKRPqYrMoU3M/kCq7nKbGBr1YSUoHd9kSyA6UAg3/p8Vw JoMchPeRfHXBTywk3Fzv/JBwHaaZa1ih15gUg6WBak4MnTLErDgw6+UVWPfDa1wexv CA7/qgEUrbG3z/xkFRnwPug2OD2sh81lGOS5yLBAAMAQI3JnNWy/C38bw68xFLKzSA ABcGCJNMAe1S3+tTfyvA3e0nVRwJoSH/lPaAJ0vh5/soszlXBUKNd3nRoL85Bqs+Cd mL4dul9dbmL4KhGDi6dWhQ7hrO0A0H18R/hF/EEsBgK+7nhDB1cW0LAy3E33WW7vJM xtD4yJb2KvriFYBSGc9ICvEgatJys38QdewSgwq1boW1jhD4PW5gpAMcR/ltezGrLc KcHj04Nlk/VIPAPNQiAQjzvs= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 2C9B940E01B7; Mon, 20 Nov 2023 10:42:26 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 07/13] x86/CPU/AMD: Move Zenbleed check to the Zen2 init function Date: Mon, 20 Nov 2023 11:41:46 +0100 Message-ID: <20231120104152.13740-8-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Prefix it properly so that it is clear which generation it is dealing with. No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 70 +++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 8d90f5f6b0d9..7cbb108afaf4 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -70,12 +70,6 @@ static const int amd_erratum_383[] =3D static const int amd_erratum_1054[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf)); =20 -static const int amd_zenbleed[] =3D - AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x30, 0x0, 0x4f, 0xf), - AMD_MODEL_RANGE(0x17, 0x60, 0x0, 0x7f, 0xf), - AMD_MODEL_RANGE(0x17, 0x90, 0x0, 0x91, 0xf), - AMD_MODEL_RANGE(0x17, 0xa0, 0x0, 0xaf, 0xf)); - static const int amd_div0[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x00, 0x0, 0x2f, 0xf), AMD_MODEL_RANGE(0x17, 0x50, 0x0, 0x5f, 0xf)); @@ -1039,33 +1033,6 @@ static void init_amd_zen(struct cpuinfo_x86 *c) =20 } =20 -static void init_amd_zen2(struct cpuinfo_x86 *c) -{ - init_amd_zen_common(); - init_spectral_chicken(c); - fix_erratum_1386(c); -} - -static void init_amd_zen3(struct cpuinfo_x86 *c) -{ - init_amd_zen_common(); - - if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { - /* - * Zen3 (Fam19 model < 0x10) parts are not susceptible to - * Branch Type Confusion, but predate the allocation of the - * BTC_NO bit. - */ - if (!cpu_has(c, X86_FEATURE_BTC_NO)) - set_cpu_cap(c, X86_FEATURE_BTC_NO); - } -} - -static void init_amd_zen4(struct cpuinfo_x86 *c) -{ - init_amd_zen_common(); -} - static bool cpu_has_zenbleed_microcode(void) { u32 good_rev =3D 0; @@ -1087,11 +1054,8 @@ static bool cpu_has_zenbleed_microcode(void) return true; } =20 -static void zenbleed_check(struct cpuinfo_x86 *c) +static void zen2_zenbleed_check(struct cpuinfo_x86 *c) { - if (!cpu_has_amd_erratum(c, amd_zenbleed)) - return; - if (cpu_has(c, X86_FEATURE_HYPERVISOR)) return; =20 @@ -1106,6 +1070,34 @@ static void zenbleed_check(struct cpuinfo_x86 *c) } } =20 +static void init_amd_zen2(struct cpuinfo_x86 *c) +{ + init_amd_zen_common(); + init_spectral_chicken(c); + fix_erratum_1386(c); + zen2_zenbleed_check(c); +} + +static void init_amd_zen3(struct cpuinfo_x86 *c) +{ + init_amd_zen_common(); + + if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { + /* + * Zen3 (Fam19 model < 0x10) parts are not susceptible to + * Branch Type Confusion, but predate the allocation of the + * BTC_NO bit. + */ + if (!cpu_has(c, X86_FEATURE_BTC_NO)) + set_cpu_cap(c, X86_FEATURE_BTC_NO); + } +} + +static void init_amd_zen4(struct cpuinfo_x86 *c) +{ + init_amd_zen_common(); +} + static void init_amd(struct cpuinfo_x86 *c) { u64 vm_cr; @@ -1227,8 +1219,6 @@ static void init_amd(struct cpuinfo_x86 *c) cpu_has(c, X86_FEATURE_AUTOIBRS)) WARN_ON_ONCE(msr_set_bit(MSR_EFER, _EFER_AUTOIBRS)); =20 - zenbleed_check(c); - if (cpu_has_amd_erratum(c, amd_div0)) { pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protect= ion.\n"); setup_force_cpu_bug(X86_BUG_DIV0); @@ -1390,7 +1380,7 @@ static void zenbleed_check_cpu(void *unused) { struct cpuinfo_x86 *c =3D &cpu_data(smp_processor_id()); =20 - zenbleed_check(c); + zen2_zenbleed_check(c); } =20 void amd_check_microcode(void) --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F409DC54E76 for ; Mon, 20 Nov 2023 10:43:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232785AbjKTKnn (ORCPT ); Mon, 20 Nov 2023 05:43:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233241AbjKTKnG (ORCPT ); Mon, 20 Nov 2023 05:43:06 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25B911704 for ; Mon, 20 Nov 2023 02:42:43 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 9466E40E01BF; Mon, 20 Nov 2023 10:42:41 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id FkM5rZcHIeIX; Mon, 20 Nov 2023 10:42:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476951; bh=Ai/81xa1PmMbh8PDFy1HNfT8wal2Kj9G4K1sJJ+j/1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MHmkJR561JRO5EFxWvGUcPpCt/Td0n0L4xwqHkt2ivnALHtY0aOZ9F6NlAr4UcRVl 21z+Z0HBnA9gqiaBefkoWqwjPQPVmTUk3jiGio73nFXjxbJfbMcahrK/XEIp7fAnTU 33rwO0RGG/TZIy5V5j5xH1T9JO1EnasThcDfpXH8IGvGMMWsqzZ57oDODe8UexwG/h HzDRk7PKaMiTbcVMQs4kPYVs4Tmv5XF54ZaFe4/I5EjrfCIoZAe7viEXSg0/CIe2zS bGHI0eadkREGOJLuZ+bHoCtt9ZyrxaPcGXp3XHOlBFFm4Dt9oUStmMGmC4vXMHMEst N6KnE2sYO82noJrlQotkHczXmyfvkwFVZJ1qiG62alOFWFNnAMsD75GJmn6Y/0YWRY qtS/uRXOrH6yyMGnduwVfwHrea8LGKz0H4QatQhUJ4szdSpqJTV1y9UQplaGgPTkNO 0vtAuX4/96PnkjGqMX4p8o0HO/Vrt6Fgi6P68zelj5Ap3cDlGqWBzh0Ot+p+uKOPmW oOK2kRaps2t9wIi8fL/DQolVAste9dlsBSGwyDYbf/V+jVFba7izNqBq6/+XwbnUSC 27tYr0Nhc4CPgiuoazxXmxevXqdVMOGRX8I3w7/p0w0ggyx2pR8lRJ6xiPrGLOGbtg wp3X00QHqmtC8YV7+3yJ/QMc= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id A72D340E0030; Mon, 20 Nov 2023 10:42:29 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 08/13] x86/CPU/AMD: Move the DIV0 bug detection to the Zen1 init function Date: Mon, 20 Nov 2023 11:41:47 +0100 Message-ID: <20231120104152.13740-9-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 7cbb108afaf4..43d6a6da7591 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -70,10 +70,6 @@ static const int amd_erratum_383[] =3D static const int amd_erratum_1054[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf)); =20 -static const int amd_div0[] =3D - AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x00, 0x0, 0x2f, 0xf), - AMD_MODEL_RANGE(0x17, 0x50, 0x0, 0x5f, 0xf)); - static const int amd_erratum_1485[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf), AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf)); @@ -1031,6 +1027,8 @@ static void init_amd_zen(struct cpuinfo_x86 *c) set_cpu_cap(c, X86_FEATURE_CPB); } =20 + pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protecti= on.\n"); + setup_force_cpu_bug(X86_BUG_DIV0); } =20 static bool cpu_has_zenbleed_microcode(void) @@ -1219,11 +1217,6 @@ static void init_amd(struct cpuinfo_x86 *c) cpu_has(c, X86_FEATURE_AUTOIBRS)) WARN_ON_ONCE(msr_set_bit(MSR_EFER, _EFER_AUTOIBRS)); =20 - if (cpu_has_amd_erratum(c, amd_div0)) { - pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protect= ion.\n"); - setup_force_cpu_bug(X86_BUG_DIV0); - } - if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && cpu_has_amd_erratum(c, amd_erratum_1485)) msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT); --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB9E4C54E76 for ; Mon, 20 Nov 2023 10:43:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232967AbjKTKnq (ORCPT ); Mon, 20 Nov 2023 05:43:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232773AbjKTKnI (ORCPT ); Mon, 20 Nov 2023 05:43:08 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3650171B for ; Mon, 20 Nov 2023 02:42:44 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id CC9C140E01C0; Mon, 20 Nov 2023 10:42:42 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0ZD5UI-0_Or2; Mon, 20 Nov 2023 10:42:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476955; bh=zlnuWah+IyiMw2epMX+2lNNaMtlKVBskdmzvqDoHxY4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bH0Xce1ArzTXJW1shOuFJBd/VnbluNCajFllQTaNX+GWIQc4RMqXvXtmZBvKWKjG5 1QNd//zwd0rHMY6YRJftMN7mjVyFCchcJ2nBUl41kfMi3gCzFYmHT6qH0v20mDKDUx p23kWb2qqSHjURVakzL3PTo0XBFHacE2pi000xPmQYdWKVC0GdzuJW9wSdSgWw4Vea Xtyrr4nQfBxkcCw5f0xjOGBTTuvaauvxYySY9kxZ0MN29jZ1i4Tyak+UyTrhKDrV24 x/YOjLu7TbxBuqeRtEaGq+twVXZrZt3Oi27hBXt58x3TTIWoPl0rBcjFSHlAUBUc82 Zr0ll/77YOtM2SeW8uRrygyiBImK2CyK+Rczi2vEdWRmy3UyaElSUp0VCTsvT3vPBD eff4ZG/UyEM29wyFKRjU1Ky6Bf/XJlRfZ8WC+G21ayl77MJLnof50znZBxgXyeGAGP KP69HVqTCG7IvmoFt96Yy9oOeE5VCW/1L9zVuAvm6jVf2FsYZe+e11UIa/aUKMTOeS QFxEdoyfRgJ7n0GNOtiFiZLlcphCwZz8cIzT0/Wgzi2ZD6hDdI7MluAH1Xy0P8dVgI pANL0V7H59zs5er8VQPQEakid70KTZsO71WVeU6iINt32rdMrK4l8QfZd+E9zVF9FH aafZpkFXZWn/dQByN5jBu2uw= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 2C4DA40E0176; Mon, 20 Nov 2023 10:42:33 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 09/13] x86/CPU/AMD: Get rid of amd_erratum_1054[] Date: Mon, 20 Nov 2023 11:41:48 +0100 Message-ID: <20231120104152.13740-10-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 43d6a6da7591..62aa99b5d6c8 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -66,10 +66,6 @@ static const int amd_erratum_400[] =3D static const int amd_erratum_383[] =3D AMD_OSVW_ERRATUM(3, AMD_MODEL_RANGE(0x10, 0, 0, 0xff, 0xf)); =20 -/* #1054: Instructions Retired Performance Counter May Be Inaccurate */ -static const int amd_erratum_1054[] =3D - AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf)); - static const int amd_erratum_1485[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf), AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf)); @@ -1201,7 +1197,7 @@ static void init_amd(struct cpuinfo_x86 *c) * Counter May Be Inaccurate". */ if (cpu_has(c, X86_FEATURE_IRPERF) && - !cpu_has_amd_erratum(c, amd_erratum_1054)) + (boot_cpu_has(X86_FEATURE_ZEN) && c->x86_model > 0x2f)) msr_set_bit(MSR_K7_HWCR, MSR_K7_HWCR_IRPERF_EN_BIT); =20 check_null_seg_clears_base(c); --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99AFBC197A0 for ; Mon, 20 Nov 2023 10:44:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232675AbjKTKoB (ORCPT ); Mon, 20 Nov 2023 05:44:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233227AbjKTKnc (ORCPT ); Mon, 20 Nov 2023 05:43:32 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6BC581989 for ; Mon, 20 Nov 2023 02:42:54 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id D158E40E01AF; Mon, 20 Nov 2023 10:42:52 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4zufFcqVaxxJ; Mon, 20 Nov 2023 10:42:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476958; bh=3REK8cjilB4gave8JLXkaKTmlF3e5GW/wMP1cCyHtis=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FHO2qSO3VMNY9RwxREiTRprM+KxzgGwsdIz6n7JCC0w7d8MUF2ciaRsiS3ver3ZMq RK6SaECmLOi7SEX3OYwoqLEonArd4Egw/th2cPWB7EA38l3NkdOkQaLZ+JBzi2k/tr lAGV0PkQ3gubQQZzzgId+RckqDAKwYNtWGOla+pcYnQLSSpxxPcaOzyjahR8SATB8N msswRbdN5V1rmTVX4lJ6A9npB14wUjVX3QBw3oUHb9MvG3aJulSEmlUD6A6t6Z6Eth WMZpdSZYeK9fn62BLE1P8z+VnbY9ZmVTHmPMViRXo4J7GxNlwkILScGpUupbGGJFIW pk7p9uGMn0R9M8hKBUNmCDRfWdYgJty0Jaa6PhzHBQw5cOUWw8UNdBPNNXOb0QtDsH aKZzuxTQYgITxwum6ZN4vu5XkaJgbURZ4nccwhsbOglueh4QmFGNdY1vV1E8HwA2dw qLQ4KVeyixUvt+1hdHLTcktVJjXrs9QZ5vtUK7CUdsnpH5WDs1D3tcvQmEilmny3lP H9h37QyeCxVxWah8G/jlq8VDoljMz1o733e3VHp0NnVzPO8exFiDiTXra2/0R4DoWq jB/Yb06Gg5opd1KR20t7Jn63f+0p6AqSyX+UpXl/eaI34MZJU7VHRCvhALKZl9IX+b nOIS2To+RYV8h9iSnsShLM6M= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id AB7F140E01AA; Mon, 20 Nov 2023 10:42:36 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 10/13] x86/CPU/AMD: Get rid of amd_erratum_383[] Date: Mon, 20 Nov 2023 11:41:49 +0100 Message-ID: <20231120104152.13740-11-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Set it in init_amd_gh() unconditionally as that is the F10h init function. No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 62aa99b5d6c8..3e25fa9c5275 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -63,9 +63,6 @@ static const int amd_erratum_400[] =3D AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf), AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf)); =20 -static const int amd_erratum_383[] =3D - AMD_OSVW_ERRATUM(3, AMD_MODEL_RANGE(0x10, 0, 0, 0xff, 0xf)); - static const int amd_erratum_1485[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf), AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf)); @@ -876,8 +873,7 @@ static void init_amd_gh(struct cpuinfo_x86 *c) */ msr_clear_bit(MSR_AMD64_BU_CFG2, 24); =20 - if (cpu_has_amd_erratum(c, amd_erratum_383)) - set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH); + set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH); } =20 static void init_amd_ln(struct cpuinfo_x86 *c) --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14726C54E76 for ; Mon, 20 Nov 2023 10:44:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233037AbjKTKoX (ORCPT ); Mon, 20 Nov 2023 05:44:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233195AbjKTKoH (ORCPT ); Mon, 20 Nov 2023 05:44:07 -0500 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D1221BE1 for ; Mon, 20 Nov 2023 02:43:15 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 7F94F40E0191; Mon, 20 Nov 2023 10:43:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id zrEdcRAkvAu4; Mon, 20 Nov 2023 10:43:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476962; bh=CeuqZVKZSFZbymJVdmtPdEsvanTHXzAKwND3+dNFkVk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eLjyU6l56F/aLBvzxQzl+i2e/rrASbVV/iVxLK/+b/NK3GMYtSAvaCFbbhx1zfhFL JB2ABi8mgPCxC/zckKwLZoR0GE+rbxmNWYjufLOLRG4g1CN/L81kgt/lH/hCRaT+dH B5g6q4pt2kW4x6OV649xUxKPmHSSXDh9qabjOiRG//KMYoHxTbMUF9lIzl/I2LWZK8 i08OKH8QtFsdiG9raXWBWRjxP35/qx07diUE4iNf+MfCyf40vAJfxSy6R7HeBtJJUv +a/9t2D89eniLEWy0tMqQQM94E/aAVH+Fv0gVc6+oD5rOIif4JEzL3ajlhKVgyhN95 HJFd1ZChvi8RF0p5QJz/Fao4zELxcXrXYeeGWck7cW/uJYh+ztWVmQrWDeLgDXav/s VgcO/27oyQmBBvP2liL5Cdjq7WTwkhxQkkJx6LTE3I7GjehBhaBIYvIizjN/i+NPXq dQUMO19xX/xr+oPzjUyxi+AnC7wvneucndbqHwVF6SAJTOoJdP8GIzEGozPxq0Xo1D 6n4yHHAikpCc+8fkZKwT/Fl8IgJj71SGOWncEW5gM5pxCeZT3zyLJzU4EetQmF4WsB xip2lZr3c2xW0u2HDzFicRRW/66W9hYx0o/97MQAwWx3D6KozIJFQDktrCw3am1ZwD j4wIhaPBzz0T7UZWhoQ+OZ+g= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 42D5C40E0031; Mon, 20 Nov 2023 10:42:40 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 11/13] x86/CPU/AMD: Get rid of amd_erratum_400[] Date: Mon, 20 Nov 2023 11:41:50 +0100 Message-ID: <20231120104152.13740-12-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Setting X86_BUG_AMD_E400 in init_amd() is early enough. No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 3e25fa9c5275..f913ca245639 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -59,10 +59,6 @@ static u32 nodes_per_socket =3D 1; #define AMD_MODEL_RANGE_START(range) (((range) >> 12) & 0xfff) #define AMD_MODEL_RANGE_END(range) ((range) & 0xfff) =20 -static const int amd_erratum_400[] =3D - AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf), - AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf)); - static const int amd_erratum_1485[] =3D AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf), AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf)); @@ -765,15 +761,6 @@ static void early_init_amd(struct cpuinfo_x86 *c) if (c->x86 =3D=3D 0x16 && c->x86_model <=3D 0xf) msr_set_bit(MSR_AMD64_LS_CFG, 15); =20 - /* - * Check whether the machine is affected by erratum 400. This is - * used to select the proper idle routine and to enable the check - * whether the machine is affected in arch_post_acpi_init(), which - * sets the X86_BUG_AMD_APIC_C1E bug depending on the MSR check. - */ - if (cpu_has_amd_erratum(c, amd_erratum_400)) - set_cpu_bug(c, X86_BUG_AMD_E400); - early_detect_mem_encrypt(c); =20 /* Re-enable TopologyExtensions if switched off by BIOS */ @@ -840,6 +827,16 @@ static void init_amd_k8(struct cpuinfo_x86 *c) msr_set_bit(MSR_K7_HWCR, 6); #endif set_cpu_bug(c, X86_BUG_SWAPGS_FENCE); + + /* + * Check models and steppings affected by erratum 400. This is + * used to select the proper idle routine and to enable the + * check whether the machine is affected in arch_post_acpi_subsys_init() + * which sets the X86_BUG_AMD_APIC_C1E bug depending on the MSR check. + */ + if (c->x86_model > 0x41 || + (c->x86_model =3D=3D 0x41 && c->x86_stepping >=3D 0x2)) + setup_force_cpu_bug(X86_BUG_AMD_E400); } =20 static void init_amd_gh(struct cpuinfo_x86 *c) @@ -874,6 +871,16 @@ static void init_amd_gh(struct cpuinfo_x86 *c) msr_clear_bit(MSR_AMD64_BU_CFG2, 24); =20 set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH); + + /* + * Check models and steppings affected by erratum 400. This is + * used to select the proper idle routine and to enable the + * check whether the machine is affected in arch_post_acpi_subsys_init() + * which sets the X86_BUG_AMD_APIC_C1E bug depending on the MSR check. + */ + if (c->x86_model > 0x2 || + (c->x86_model =3D=3D 0x2 && c->x86_stepping >=3D 0x1)) + setup_force_cpu_bug(X86_BUG_AMD_E400); } =20 static void init_amd_ln(struct cpuinfo_x86 *c) --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4EC80C197A0 for ; Mon, 20 Nov 2023 10:44:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232849AbjKTKo2 (ORCPT ); Mon, 20 Nov 2023 05:44:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233205AbjKTKoJ (ORCPT ); Mon, 20 Nov 2023 05:44:09 -0500 Received: from mail.alien8.de (mail.alien8.de [IPv6:2a01:4f9:3051:3f93::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 329FDF1 for ; Mon, 20 Nov 2023 02:43:16 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 9FAD940E0031; Mon, 20 Nov 2023 10:43:14 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id jFkyOQGuoUdA; Mon, 20 Nov 2023 10:43:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476966; bh=zSLgutEmyCmCS539z/eElXM8kHbppEABOqOJE2A9kTo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KfaLwZFiE/0gqirbhxB0qNTgeotT1cCYzCY45DBWt0bYLHBMbOABzNHDEEe1ePKKN ZmBk8aoVCLrZDCnb/4CVreCMX6+ncm0a0PftPrAQfydPKYF9xTtVRj1BtoWC6IelcN zGaFZQi+jRtzzYHGIYKU+7xFpWvH/JFORC1EIBzOELuIZ2XwdTwbgJjxfhMj249sRa gpENy/lJKBqQX7u6saBaoUc9mS9Hn0KMT87P8GE9nx6rzxECpP/1rtqqnM8kTb+q4S gfUGJlU3MgiUyHX6VRHlmQ4w91IlIJ0x9aJo/p3+2pbkyqcrMPu5Wgii6Fo3sE8fYA DwTxzm4WTka5ZQkXQ5Y3zVywTdFtjs8oQkiQK2deTrAFDDImCbN0OOVcbiQqRoq+zX U7Tg9siw9OTuOlkHqJCLn57uXCKuJjIC5Jq1tggMLLBRCt8X298ss9XT7xz5bkCnTn y9+LlUin3kS5VZ8D/5BpO2ryz9acVcSr7yQBveAxdKKwNsTkvx1jGDisMAjnxiWcEh g/HlMfzEzgfnw/2BfdzM+YNS+56VKogiajV+Ilhmt8cdYZAyZL/vlApJpbD6PVwe2C uUP7z9Yfpcrbe2TiL8yjxFkecvdPGVoxF+XFhauQbg7lPHfwumnunk5oExNrO2e++i uRIB/33Ryb1pmDLqLeedYKgQ= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id DDDB840E0176; Mon, 20 Nov 2023 10:42:43 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 12/13] x86/CPU/AMD: Get rid of amd_erratum_1485[] Date: Mon, 20 Nov 2023 11:41:51 +0100 Message-ID: <20231120104152.13740-13-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" No functional changes. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index f913ca245639..54e07c9b1292 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -59,10 +59,6 @@ static u32 nodes_per_socket =3D 1; #define AMD_MODEL_RANGE_START(range) (((range) >> 12) & 0xfff) #define AMD_MODEL_RANGE_END(range) ((range) & 0xfff) =20 -static const int amd_erratum_1485[] =3D - AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf), - AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf)); - static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratu= m) { int osvw_id =3D *erratum++; @@ -1093,6 +1089,9 @@ static void init_amd_zen3(struct cpuinfo_x86 *c) static void init_amd_zen4(struct cpuinfo_x86 *c) { init_amd_zen_common(); + + if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) + msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT); } =20 static void init_amd(struct cpuinfo_x86 *c) @@ -1215,10 +1214,6 @@ static void init_amd(struct cpuinfo_x86 *c) if (spectre_v2_in_eibrs_mode(spectre_v2_enabled) && cpu_has(c, X86_FEATURE_AUTOIBRS)) WARN_ON_ONCE(msr_set_bit(MSR_EFER, _EFER_AUTOIBRS)); - - if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && - cpu_has_amd_erratum(c, amd_erratum_1485)) - msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT); } =20 #ifdef CONFIG_X86_32 --=20 2.42.0.rc0.25.ga82fb66fed25 From nobody Thu Dec 18 07:21:05 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C5496C54E76 for ; Mon, 20 Nov 2023 10:44:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232680AbjKTKon (ORCPT ); Mon, 20 Nov 2023 05:44:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233145AbjKTKoR (ORCPT ); Mon, 20 Nov 2023 05:44:17 -0500 Received: from mail.alien8.de (mail.alien8.de [IPv6:2a01:4f9:3051:3f93::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0C0110E0 for ; Mon, 20 Nov 2023 02:43:25 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 48E8940E0030; Mon, 20 Nov 2023 10:43:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key) reason="fail (body has been altered)" header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6MdqnS4uwAxP; Mon, 20 Nov 2023 10:43:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1700476969; bh=/Cy8NatvX/Kmu3ga/aoJptF1EvKLJEj2qDDtcQHYy0A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FORQY5GWUhmMqGcviDAUSKl5P0aEjY/jU2Z7LWwHkOafLwm77LW4ydKq9vuswNw9s /wquzcAPGkFjxa2EZ0IGhWOmimZnHjXQ34u7Oz2hO8oGySn1CLrwusydPdKUj8jeY1 uPFWMlf8m9dpgNSOcdp54qJPMe2fs7FpLmQBw3yJRvGBrPwBYJ0ZEJYpDgU3cQsgxt maS2VI/3PkYVG/a4ZgF8BtfLpVUZwIu6Vg4yGansAChOt1PdH7q9ISaaMHh3Luunt0 wKok4HE73I6Q+zSgkwJWB/jWL2i2+cXnDTAKi8CG0Pgo2Fpu+RYB4oTHPcuEZKQHIz a0SIjsIVBKN8AR5CZV21KGeKlYv3fhhV9vl7RNnQ6dcGUm05Y95Iq/Uf35SRAMrOCl UGiWaanqiU0ppNJy0W6WUJ9OcUk2RK+6d2eD1EyKEVYtKpQmkR2Q4FqQUwHWg2lZsB mVfv31vblQaX4cPjdCdMEUYdXLXPn/bv3nIBAAhVkcx8Xbe1O9vrgEuqEEg3i4VnDe 0qwnRw6kGXFcgnA7A0SmMxRHaCKfnyLoW0XL/KpLrOLNzWEsH1hcN42u9asElStNPT gRp4RcGkN3Hi+/fA0wAwqJpQV+bCi/xKkLoIl2+yE8BFz6z4c+9ErK3x4fuVz456E4 1ayOMHuKdncSJ07tWYAecUts= Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 17E6540E01C2; Mon, 20 Nov 2023 10:42:47 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: LKML Subject: [PATCH 13/13] x86/CPU/AMD: Drop now unused CPU erratum checking function Date: Mon, 20 Nov 2023 11:41:52 +0100 Message-ID: <20231120104152.13740-14-bp@alien8.de> X-Mailer: git-send-email 2.42.0.rc0.25.ga82fb66fed25 In-Reply-To: <20231120104152.13740-1-bp@alien8.de> References: <20231120104152.13740-1-bp@alien8.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Borislav Petkov (AMD)" Bye bye. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Nikolay Borisov --- arch/x86/kernel/cpu/amd.c | 56 --------------------------------------- 1 file changed, 56 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 54e07c9b1292..a363de80ce28 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -34,62 +34,6 @@ */ static u32 nodes_per_socket =3D 1; =20 -/* - * AMD errata checking - * - * Errata are defined as arrays of ints using the AMD_LEGACY_ERRATUM() or - * AMD_OSVW_ERRATUM() macros. The latter is intended for newer errata that - * have an OSVW id assigned, which it takes as first argument. Both take a - * variable number of family-specific model-stepping ranges created by - * AMD_MODEL_RANGE(). - * - * Example: - * - * const int amd_erratum_319[] =3D - * AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0x4, 0x2), - * AMD_MODEL_RANGE(0x10, 0x8, 0x0, 0x8, 0x0), - * AMD_MODEL_RANGE(0x10, 0x9, 0x0, 0x9, 0x0)); - */ - -#define AMD_LEGACY_ERRATUM(...) { -1, __VA_ARGS__, 0 } -#define AMD_OSVW_ERRATUM(osvw_id, ...) { osvw_id, __VA_ARGS__, 0 } -#define AMD_MODEL_RANGE(f, m_start, s_start, m_end, s_end) \ - ((f << 24) | (m_start << 16) | (s_start << 12) | (m_end << 4) | (s_end)) -#define AMD_MODEL_RANGE_FAMILY(range) (((range) >> 24) & 0xff) -#define AMD_MODEL_RANGE_START(range) (((range) >> 12) & 0xfff) -#define AMD_MODEL_RANGE_END(range) ((range) & 0xfff) - -static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratu= m) -{ - int osvw_id =3D *erratum++; - u32 range; - u32 ms; - - if (osvw_id >=3D 0 && osvw_id < 65536 && - cpu_has(cpu, X86_FEATURE_OSVW)) { - u64 osvw_len; - - rdmsrl(MSR_AMD64_OSVW_ID_LENGTH, osvw_len); - if (osvw_id < osvw_len) { - u64 osvw_bits; - - rdmsrl(MSR_AMD64_OSVW_STATUS + (osvw_id >> 6), - osvw_bits); - return osvw_bits & (1ULL << (osvw_id & 0x3f)); - } - } - - /* OSVW unavailable or ID unknown, match family-model-stepping range */ - ms =3D (cpu->x86_model << 4) | cpu->x86_stepping; - while ((range =3D *erratum++)) - if ((cpu->x86 =3D=3D AMD_MODEL_RANGE_FAMILY(range)) && - (ms >=3D AMD_MODEL_RANGE_START(range)) && - (ms <=3D AMD_MODEL_RANGE_END(range))) - return true; - - return false; -} - static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p) { u32 gprs[8] =3D { 0 }; --=20 2.42.0.rc0.25.ga82fb66fed25