From nobody Fri Sep 12 01:10:12 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 ED18AEB64DD for ; Wed, 9 Aug 2023 10:27:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232213AbjHIK1k (ORCPT ); Wed, 9 Aug 2023 06:27:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33648 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231733AbjHIK1e (ORCPT ); Wed, 9 Aug 2023 06:27:34 -0400 Received: from mail.alien8.de (mail.alien8.de [IPv6:2a01:4f9:3051:3f93::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BA9F81FDF for ; Wed, 9 Aug 2023 03:27:32 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 249CA40E01A3; Wed, 9 Aug 2023 10:27:31 +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 2KBEy6rtFKNz; Wed, 9 Aug 2023 10:27:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1691576848; bh=hHwZiO3cl0WSFwWrnTAhlEen22AC22m/lmz1TtfKTSw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hnTDEu1ARH6tQaTAZQzbygpVqchv0YBfnr8WruS5viuS5vk4i9cRU3nuvSxywq1Os 1or3Qp2hS/ttSMDosQ+95K/83F2zFI+lRuCieyShn17/WsALWh8JprQTZ8WvJ9VgbJ d79fljmMx+Lok0oEb6OnJl2AzuEFedw4LrWwi0eIkIMiNsmLiyha2GCnmHZcsP7jy2 dixr8XrhXZlzOEx0sFUVHhy32REPfMm/Rsob6/Bvi0faQEuhUwhQ67QI5W46Wf3xIl t+Q3PJ2LnAHcenxq/uaDG4NA0KtzJCKT4llm1mNWGoDQJduuoemchZut21g1f6Eh57 D2MWRa5OKYvd3VNUG/ooIzK7j0Zpmn6BgFSRZlfVm/2kPHHOoygsWrjOKyUsk07qzK vVIkN1ZvsozRhB/SIGHgQYccjKAHunTb+Koo2BA/JPgOVVctQ9LMnwdDRPtcMHR0Jt NhqpemUEWpDHkTSpf092fEDml7ZbisItj7gWKOOsRZ/Yp8DrG+RNJqo1xfbndBOWOm NU4dF9z5eH5yot1Alkzat3MHYOV5aLRiWESdnaefinyb5Uw6iBAPbZsBPfvvcjGpN6 7ga7vc7vRaLJzXzHbCW/uwMIBy8XVrjzPEYMZ0kOJnFnlHQxexYSGShdKmdhmC7XlA X8MXYGr2+5s/YYvZ5L43j/AA= Received: from zn.tnic (pd9530d32.dip0.t-ipconnect.de [217.83.13.50]) (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 9972440E01A1; Wed, 9 Aug 2023 10:27:24 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: Greg Kroah-Hartman , LKML , Linus Torvalds Subject: [PATCH 1/3] Documentation/hw-vuln: Unify filename specification in index Date: Wed, 9 Aug 2023 12:26:58 +0200 Message-ID: <20230809102700.29449-2-bp@alien8.de> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230809102700.29449-1-bp@alien8.de> References: <20230809102700.29449-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)" Most of the index.rst files in Documentation/ refer to other rst files without their file extension in the name. Do that here too. No functional changes. Reported-by: Linus Torvalds Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Greg Kroah-Hartman --- Documentation/admin-guide/hw-vuln/index.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/admin-guide/hw-vuln/index.rst b/Documentation/ad= min-guide/hw-vuln/index.rst index a7d37e124831..aeee8bff5f82 100644 --- a/Documentation/admin-guide/hw-vuln/index.rst +++ b/Documentation/admin-guide/hw-vuln/index.rst @@ -13,11 +13,11 @@ are configurable at compile, boot or run time. l1tf mds tsx_async_abort - multihit.rst - special-register-buffer-data-sampling.rst - core-scheduling.rst - l1d_flush.rst - processor_mmio_stale_data.rst - cross-thread-rsb.rst + multihit + special-register-buffer-data-sampling + core-scheduling + l1d_flush + processor_mmio_stale_data + cross-thread-rsb srso gather_data_sampling.rst --=20 2.41.0 From nobody Fri Sep 12 01:10:12 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 2F0CAEB64DD for ; Wed, 9 Aug 2023 10:27:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232215AbjHIK1p (ORCPT ); Wed, 9 Aug 2023 06:27:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232203AbjHIK1j (ORCPT ); Wed, 9 Aug 2023 06:27:39 -0400 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FB1C2112 for ; Wed, 9 Aug 2023 03:27:38 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id A5FFA40E01A2; Wed, 9 Aug 2023 10:27: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 CMOzuCbjzq-X; Wed, 9 Aug 2023 10:27:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1691576854; bh=Kqk9iB23zva22rrtFW2VbzZ/5CKBSXXVyARTF51x9QA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SGka17EZMGm4JXxnMyDhLYGVtgljDnAdoSMNtZ2lOkPViuraS2B0tGP87U1A5YOU6 pLU5TwFMdeQHwELL4ZBX6r6zyp4O3mHl7b5Pwse17QGn9Ggdd2mrstQBqEHGRcPm6P 5TDN/bJpeO0PoU7qOLuD8jA8+XJHxyaVg8r2FeJKFrfsOR8eHQZY4dJwAtFInMxC2E hc9BZlAp4lIOJuN61fgp9Yfc/Lfu7oB+FhF2cP9VF/0uPZY9+afMdBqzyPDZMd9ZQU NdtOFo8/44V08gFZt9Yx2WGA8dNnjDnEF9AdSUqtG5doXaa7SVkcFgkcg0+yfpDTGi 5nhpi77l4y6muTjA/MECzXAGAvoONSr2c+ukmItFPLtSaJa/iiV5Z4OexUI/3Pxih3 WDmES3fA80yPoza+Osx1I58FdbJ+2wKT36Z3PLVWNVHUxAx2vqoynTdirOKug5nq5L I81VgWACQAwOhIc630PxOq2dmuGhIobCpozVlP6L+Df8HbAfkb+F3LRFd2gz6Ie8uu 1MuNcOk1qYv1k4LSF8+iFeSfeV3C03p1BjMQxE/6VaaXP1wkiwV5EkAiEGOAJq60qY 2JlwyTwmu8pt1VhxvwYeHnplKUecCGmNPFa0kA93Jk5S411atMzYOdSXb0lST1+C8G BxOydA0/12OUtG7QeIT2vuCQ= Received: from zn.tnic (pd9530d32.dip0.t-ipconnect.de [217.83.13.50]) (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 6874140E0140; Wed, 9 Aug 2023 10:27:30 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: Greg Kroah-Hartman , LKML , Linus Torvalds Subject: [PATCH 2/3] driver core: cpu: Unify redundant silly stubs Date: Wed, 9 Aug 2023 12:26:59 +0200 Message-ID: <20230809102700.29449-3-bp@alien8.de> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230809102700.29449-1-bp@alien8.de> References: <20230809102700.29449-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)" Make them all a weak function, aliasing to a single function which issues the "Not affected" string. No functional changes. Suggested-by: Linus Torvalds Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Greg Kroah-Hartman Reviewed-by: Nikolay Borisov --- drivers/base/cpu.c | 86 ++++++++++------------------------------------ 1 file changed, 18 insertions(+), 68 deletions(-) diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index 52df435eecf8..971771347aa6 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -509,79 +509,29 @@ static void __init cpu_dev_register_generic(void) } =20 #ifdef CONFIG_GENERIC_CPU_VULNERABILITIES - -ssize_t __weak cpu_show_meltdown(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_spectre_v1(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_spectre_v2(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_spec_store_bypass(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_l1tf(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_mds(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_tsx_async_abort(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_itlb_multihit(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_srbds(struct device *dev, +ssize_t cpu_show_not_affected(struct device *dev, struct device_attribute *attr, char *buf) { return sysfs_emit(buf, "Not affected\n"); } =20 -ssize_t __weak cpu_show_mmio_stale_data(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_retbleed(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} - -ssize_t __weak cpu_show_spec_rstack_overflow(struct device *dev, - struct device_attribute *attr, char *buf) -{ - return sysfs_emit(buf, "Not affected\n"); -} +#define CPU_VULN_FALLBACK(func) \ + ssize_t cpu_show_##func(struct device *, \ + struct device_attribute *, char *) \ + __attribute__((weak, alias("cpu_show_not_affected"))) + +CPU_VULN_FALLBACK(meltdown); +CPU_VULN_FALLBACK(spectre_v1); +CPU_VULN_FALLBACK(spectre_v2); +CPU_VULN_FALLBACK(spec_store_bypass); +CPU_VULN_FALLBACK(l1tf); +CPU_VULN_FALLBACK(mds); +CPU_VULN_FALLBACK(tsx_async_abort); +CPU_VULN_FALLBACK(itlb_multihit); +CPU_VULN_FALLBACK(srbds); +CPU_VULN_FALLBACK(mmio_stale_data); +CPU_VULN_FALLBACK(retbleed); +CPU_VULN_FALLBACK(spec_rstack_overflow); =20 ssize_t __weak cpu_show_gds(struct device *dev, struct device_attribute *attr, char *buf) --=20 2.41.0 From nobody Fri Sep 12 01:10:12 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 29411EB64DD for ; Wed, 9 Aug 2023 10:27:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232184AbjHIK1y (ORCPT ); Wed, 9 Aug 2023 06:27:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232194AbjHIK1t (ORCPT ); Wed, 9 Aug 2023 06:27:49 -0400 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BBEF210C for ; Wed, 9 Aug 2023 03:27:42 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 648B540E01A1; Wed, 9 Aug 2023 10:27: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 52PuPSpKsuIJ; Wed, 9 Aug 2023 10:27:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1691576859; bh=sSG8SuLREEWpITGtVL2ale4erYRAEQ6yV/T4GIjhK/s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZrFhL/OLe16B3WTHoznti3hfzmMOwRm/Gw++gpceuIDHnsqGCBrnR8SWHnIQIU6wE 9lBv9KuIVGsvKD7/HllTilBei0ztMA6N7n4GfecP+ZNXquihB7SAHDVyqKDIJ4kKac cbWmRO8pC5eB/4YLuoLELwyLHTvgCVdEWo8alCIRrIhu9VYOos0hrwnha7kCVouF+A rc7lD9QmvUMeBCr/wqzcOSevpjVhtpYBhNar/WGQpVXvzsR3uCNgyTFMldOfNeq00Y AOc6XnPTQslMXslTRCyG4vytQeLCGPMQYTwHlnQJCNZqGlbdT0HExm5lTQeichgdi8 8ozmVULwuoUIs381Cgq3lr/uC9yg3IfGEhTp+rGYh/6kI25TPRCoPAj2yec9SV6hoe cvOdHuOs0dZsB8ceY6wnNP3Z0oIA/qOS8+QroBR7keJ+ojnK66wmm0TaTy1ABIPPJC nd97TbGO8+u48HxaxAmhH8YtQq3kVNcrPDuhXwzvEw/WZz4lOrjGtqkuN+1BXvEVr0 41RxJm2qtoNinTWcKFGoQnhbWB67jOl5S0ZQuJ7GEBACPPedbMebYbY6Rd/s6G1wBj cYzwPzEFCoDGNgvQvcPjPxm27+ztGw/3+Vz4BrLrfuJGB8t2cqZv3ZuTcYk2mIJaxy VN/1M8mxzK51t0Q37vtfTgdY= Received: from zn.tnic (pd9530d32.dip0.t-ipconnect.de [217.83.13.50]) (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 1822C40E01A3; Wed, 9 Aug 2023 10:27:36 +0000 (UTC) From: Borislav Petkov To: X86 ML Cc: Greg Kroah-Hartman , LKML Subject: [PATCH 3/3] Documentation/srso: Document IBPB aspect and fix formatting Date: Wed, 9 Aug 2023 12:27:00 +0200 Message-ID: <20230809102700.29449-4-bp@alien8.de> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230809102700.29449-1-bp@alien8.de> References: <20230809102700.29449-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 a note about the dependency of the User->User mitigation on the previous Spectre v2 IBPB selection. Make the layout moar pretty. Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Greg Kroah-Hartman --- Documentation/admin-guide/hw-vuln/srso.rst | 71 ++++++++++++++-------- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/Documentation/admin-guide/hw-vuln/srso.rst b/Documentation/adm= in-guide/hw-vuln/srso.rst index 32eb5e6db272..af59a9395662 100644 --- a/Documentation/admin-guide/hw-vuln/srso.rst +++ b/Documentation/admin-guide/hw-vuln/srso.rst @@ -42,42 +42,59 @@ The sysfs file showing SRSO mitigation status is: =20 The possible values in this file are: =20 - - 'Not affected' The processor is not vulnerable + * 'Not affected': =20 - - 'Vulnerable: no microcode' The processor is vulnerable, no - microcode extending IBPB functionality - to address the vulnerability has been - applied. + The processor is not vulnerable =20 - - 'Mitigation: microcode' Extended IBPB functionality microcode - patch has been applied. It does not - address User->Kernel and Guest->Host - transitions protection but it does - address User->User and VM->VM attack - vectors. + * 'Vulnerable: no microcode': =20 - (spec_rstack_overflow=3Dmicrocode) + The processor is vulnerable, no microcode extending IBPB + functionality to address the vulnerability has been applied. =20 - - 'Mitigation: safe RET' Software-only mitigation. It complements - the extended IBPB microcode patch - functionality by addressing User->Kernel=20 - and Guest->Host transitions protection. + * 'Mitigation: microcode': =20 - Selected by default or by - spec_rstack_overflow=3Dsafe-ret + Extended IBPB functionality microcode patch has been applied. It does + not address User->Kernel and Guest->Host transitions protection but it + does address User->User and VM->VM attack vectors. =20 - - 'Mitigation: IBPB' Similar protection as "safe RET" above - but employs an IBPB barrier on privilege - domain crossings (User->Kernel, - Guest->Host). + Note that User->User mitigation is controlled by how the IBPB aspect in + the Spectre v2 mitigation is selected: =20 - (spec_rstack_overflow=3Dibpb) + * conditional IBPB: + + where each process can select whether it needs an IBPB issued + around it PR_SPEC_DISABLE/_ENABLE etc, see :doc:`spectre` + + * strict: + + i.e., always on - by supplying spectre_v2_user=3Don on the kernel + command line + + (spec_rstack_overflow=3Dmicrocode) + + * 'Mitigation: safe RET': + + Software-only mitigation. It complements the extended IBPB microcode + patch functionality by addressing User->Kernel and Guest->Host + transitions protection. + + Selected by default or by spec_rstack_overflow=3Dsafe-ret + + * 'Mitigation: IBPB': + + Similar protection as "safe RET" above but employs an IBPB barrier on + privilege domain crossings (User->Kernel, Guest->Host). + + (spec_rstack_overflow=3Dibpb) + + * 'Mitigation: IBPB on VMEXIT': + + Mitigation addressing the cloud provider scenario - the Guest->Host + transitions only. + + (spec_rstack_overflow=3Dibpb-vmexit) =20 - - 'Mitigation: IBPB on VMEXIT' Mitigation addressing the cloud provider - scenario - the Guest->Host transitions - only. =20 - (spec_rstack_overflow=3Dibpb-vmexit) =20 In order to exploit vulnerability, an attacker needs to: =20 --=20 2.41.0