From patchwork Tue Sep 5 05:04:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Poimboeuf X-Patchwork-Id: 137537 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1815607vqo; Tue, 5 Sep 2023 10:09:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGNmlxLMiHA3zTJFnBqwel8Wjy3mSKw6oCTQkPAbnoZNAVb9eJlL/T0ggBbnwMsGLywIJNr X-Received: by 2002:a05:6a20:f398:b0:14c:d0d2:326d with SMTP id qr24-20020a056a20f39800b0014cd0d2326dmr13439680pzb.61.1693933768144; Tue, 05 Sep 2023 10:09:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693933768; cv=none; d=google.com; s=arc-20160816; b=GLBZhq+c5zi8kBM3FLz9h/yPyy5yGb2CQIS2SO4WfPYPvZh2gw+lEg+uUHgRw4qC0a ex6URxcyEttImTzLhNLpvocv84dnEkjLU4Z28lf1WaK44BbfvZQ/daPSjE/QPpvN+Czk 6IusJsl8EZF9IPRvuHuw0MLXWDs9fFkqaCR/OG/6jIVU56WhzJ8uG9iwRAlUhrnhZasx fqbaxCp3DipnTcmofAePwTJyn343Y5dMgF2/cWQ8uYy+29W7M5FST+6YW7YZdVmSOv4H h+LEheEasX1E1CBaplYuH8mWm2Iqd4q9l4SSgTZlUNbFeuRfwbhiSDSnKvVCORN8KrjY s/tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=nOlDgec0voLG+8RiSsk6RELEjk3dCNIvHJUJjKS+9/0=; fh=ZwaEcDYNCnlh+U7YxZ1LCEcet9pcdhSkEX0cCEOksvY=; b=WDDfEqBwGHrsedUgQAshcaDMJL8nDiH8GB2UZDI1UWv5BFgk2keKR21qvCjTWzsm6S eVn5JwiDgIvx4aAE1njxqYcz8uGwdPzfl9g+evr41AhPH0rYEgT0g89Hde/9Q1HteK79 SABKlw7kbTk9U89bgxYAHNlPgBWZ5DhNcMf6hTB5jbbuZVwvgjL8DLynkp+oUx6lltf/ 8aLlItYcnhfXX/XPKBbDW5AoiYx9t964CAiYdW5TNcBQnMMOoWM9+G+y+nYBHmZwrU6Y 861HPsnBFR5EZt9D11gyMoGr7Hy8becPA93YdR7S21BbUgiUJNPBboRv9lgTTjMZMvZt k+lQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PuXq148K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y38-20020a631826000000b00533fce755adsi9678015pgl.130.2023.09.05.10.09.21; Tue, 05 Sep 2023 10:09:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PuXq148K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233068AbjIEQqE (ORCPT + 38 others); Tue, 5 Sep 2023 12:46:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351027AbjIEFFU (ORCPT ); Tue, 5 Sep 2023 01:05:20 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C96AACC5 for ; Mon, 4 Sep 2023 22:05:17 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 727D9B810B6 for ; Tue, 5 Sep 2023 05:05:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BFC01C43391; Tue, 5 Sep 2023 05:05:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1693890316; bh=otPNzKDwP0knGMWa4St3Ci30JNUajDBlV4LBtFI0CEE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PuXq148KCyVzDf8SM9fg4H8odnPAOkistj6TJ1qidIgoFkJhClxrgA/uV/WsCVC27 VgYgC73RIyS6UpgzhrkeV57Ms+Dn6PumZIZQd+tuZOTtY52tRmnD9uKGUEQV8hfJqc XuiIXFuh/i9/8Jpn75ym7FnuhYQk4tPHlG9uWAFxybFcA6xhM5C2Ly/2nyUpAYD4Nu C/E6m1A2x6nsDEzlZ9MjvYc7Vj6Mbvbp3z/zgwX3E3KAimwvVM13a3VKd9voe3oLJi aSZPFcklONm1OyVSdbo/7f1S5t1GlAnIdD1bGeGEHtCf06s15QXlu8uPIn1x1wC2Sm UnFFgL/gdL7ng== From: Josh Poimboeuf To: x86@kernel.org Cc: linux-kernel@vger.kernel.org, Borislav Petkov , Peter Zijlstra , Babu Moger , Paolo Bonzini , Sean Christopherson , David.Kaplan@amd.com, Andrew Cooper , Nikolay Borisov , gregkh@linuxfoundation.org, Thomas Gleixner Subject: [PATCH v3 15/20] x86/srso: Move retbleed IBPB check into existing 'has_microcode' code block Date: Mon, 4 Sep 2023 22:04:59 -0700 Message-ID: <0a22b86b1f6b07f9046a9ab763fc0e0d1b7a91d4.1693889988.git.jpoimboe@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776218294438773999 X-GMAIL-MSGID: 1776218294438773999 Simplify the code flow a bit by moving the retbleed IBPB check into the existing 'has_microcode' block. Signed-off-by: Josh Poimboeuf --- arch/x86/kernel/cpu/bugs.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 941ac94ad0d4..6b443f0fde34 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -2430,10 +2430,8 @@ static void __init srso_select_mitigation(void) setup_force_cpu_cap(X86_FEATURE_SRSO_NO); return; } - } - if (retbleed_mitigation == RETBLEED_MITIGATION_IBPB) { - if (has_microcode) { + if (retbleed_mitigation == RETBLEED_MITIGATION_IBPB) { srso_mitigation = SRSO_MITIGATION_IBPB; goto out; } From patchwork Tue Sep 5 05:05:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Poimboeuf X-Patchwork-Id: 137534 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1808542vqo; Tue, 5 Sep 2023 09:59:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHMCGR0vvqiMGDdBQsqxGWBZ8qOBuosY8SKxil6OXIjJew124A+PL+2UwQMpBT8GMv9mX85 X-Received: by 2002:aa7:8881:0:b0:68b:c423:fb20 with SMTP id z1-20020aa78881000000b0068bc423fb20mr12500530pfe.30.1693933146612; Tue, 05 Sep 2023 09:59:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693933146; cv=none; d=google.com; s=arc-20160816; b=ApEjMN3qttF/T2pyuzvInH/QaDUWJYPi1ZB7W5f6uYCCueJLYWEVDqqB066wohtVJ0 136QVnCCnVxIW+8/HvmzaLnaMSoIZ8h7Mp9YdZhDTSlszKZB61S+LTN273B+EXl3XL5k 03hHi7IO7qQqbEJOvYRI35dUgjkA3tyuXuW7hBtIiTi8Zc74I6BrucWJzunDCqiaRYyC 7TFU2qwOcjsOyUP8MlI+NC7fR5JCG3dw/iiZJkZagvj/AbejcYqOHx55lwjxcSw1d7jm 4BiLlaeN0zGDQquwlg59g8zGr74J5iKRbahvAWsRLxuwf9gHbJYHH8wpmcOz/BnxuatM kh5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aOBMicZEz7Ljg63be/MngVcmadEK9dPurRpNMNjlTRU=; fh=ZwaEcDYNCnlh+U7YxZ1LCEcet9pcdhSkEX0cCEOksvY=; b=W1wLd1L6u0CnsYzrgzF4d8EvplslNNtKOF36YdR4CXO4u0sWIzQ+RkGW0U/9YbRg9k ZVOezqNKuJaGvJ1SzsQe3w0skOUMO8LvTWT84GgNScR6FpsOlhj12aHNoOiocXwBHGDE CxWGvENr9zQMHCErBhefKQdtdlxegmn3e1HQ+wu9ZtrBpV89XpDgnb8HnR4ycM+L9Svm ISks9EGixi5cibCcdA2mqMgG5X11rLrCC5VTqqvpLpN6NWCA86IzSMPajtPrFYJDBu5N 92BEVFP7c71ngy+aJ/fZIQyviohshf/7qP5xi07f+u2/N0M8WGg9A60EeTQBH+pDBgj+ jesw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Qm7hFpPu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bt10-20020a056a00438a00b0068e288ce7e5si511171pfb.76.2023.09.05.09.59.00; Tue, 05 Sep 2023 09:59:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Qm7hFpPu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244001AbjIEQkF (ORCPT + 38 others); Tue, 5 Sep 2023 12:40:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351049AbjIEFFW (ORCPT ); Tue, 5 Sep 2023 01:05:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B4FF6CC5 for ; Mon, 4 Sep 2023 22:05:18 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4C1376144F for ; Tue, 5 Sep 2023 05:05:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A382EC433CA; Tue, 5 Sep 2023 05:05:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1693890318; bh=vc/fpVk3bxy2ex4nbxSxEwbS+F8Y//JwnGv+3rBD+Rs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qm7hFpPuoneMtpu352C4KgS1bjCK9qX6s/MPeb+HOZsrPJ1aU/5DDsqNm7L/gv2NW WfADhO00YENHlRM5wKgo5eh6JWSW24XQ3x7YKLSHmcDtfuG2ID21sTTr3sa6ROh95Q wGfaxre5AdYJd7KPFABwPu9iHhV1GKJzW3FUuSnRd5h3ADQEmHRzf3y3SmgyUiaDQJ gxRmVlI0UwmjBvZ33CcLuj3y3EoktGjdZTe2AUbgRx3t+NCSR+y501FLO4LB5pLw3I bpIgIdw1Q841XIRCkkBIVI+33NNYHcNyEL2HtdXlOuI/lcS7cnjhRL1mkxK56BApie /4iAaR4tu1wOw== From: Josh Poimboeuf To: x86@kernel.org Cc: linux-kernel@vger.kernel.org, Borislav Petkov , Peter Zijlstra , Babu Moger , Paolo Bonzini , Sean Christopherson , David.Kaplan@amd.com, Andrew Cooper , Nikolay Borisov , gregkh@linuxfoundation.org, Thomas Gleixner Subject: [PATCH v3 18/20] x86/retpoline: Remove .text..__x86.return_thunk section Date: Mon, 4 Sep 2023 22:05:02 -0700 Message-ID: <291aad1dcb2d27c6241fe3f182d66119857757fd.1693889988.git.jpoimboe@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776217642846242382 X-GMAIL-MSGID: 1776217642846242382 The '.text..__x86.return_thunk' section has no purpose. Remove it and let the return thunk code live in '.text..__x86.indirect_thunk'. Signed-off-by: Josh Poimboeuf --- arch/x86/kernel/vmlinux.lds.S | 3 --- arch/x86/lib/retpoline.S | 2 -- 2 files changed, 5 deletions(-) diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index 9188834e56c9..f1c3516d356d 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -132,10 +132,7 @@ SECTIONS LOCK_TEXT KPROBES_TEXT SOFTIRQENTRY_TEXT -#ifdef CONFIG_RETPOLINE *(.text..__x86.indirect_thunk) - *(.text..__x86.return_thunk) -#endif STATIC_CALL_TEXT ALIGN_ENTRY_TEXT_BEGIN diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S index 415521dbe15e..49f2be7c7b35 100644 --- a/arch/x86/lib/retpoline.S +++ b/arch/x86/lib/retpoline.S @@ -129,8 +129,6 @@ SYM_CODE_END(__x86_indirect_jump_thunk_array) #ifdef CONFIG_RETHUNK - .section .text..__x86.return_thunk - #ifdef CONFIG_CPU_SRSO /* From patchwork Tue Sep 5 05:05:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Poimboeuf X-Patchwork-Id: 137536 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1808733vqo; Tue, 5 Sep 2023 09:59:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFtSN/xKP4Oc6xbEjUcOkeFSUF6F5fc8NdxgF8ag9rnHSUBp1YyNzFwbyI6VPIaTDiqiLRW X-Received: by 2002:a17:903:2347:b0:1c0:bcbc:d66 with SMTP id c7-20020a170903234700b001c0bcbc0d66mr19743294plh.7.1693933171802; Tue, 05 Sep 2023 09:59:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693933171; cv=none; d=google.com; s=arc-20160816; b=Q7JRlyAiY/aOTOo8ZDZpm2pbe3L1rt4QnZjmV4Ir4tyZOmkKMbnzy6JcdBJz7gbsQf vBKXjmOtgxeZnXH2AEB8rJyr/JYFlfaZJ2clb34noWyupDz2RloZChZhw5xh8V44df67 UsGW4CzUgI8gtA0sCPLeUe+5W4vYg3fJIjgdNzk9KqMNqOgCZnnvU2xwyVrkHHE1jPby LhIqEWEdhRkiNmJnwu1m+mDfueeamx/q6PpYfXBc2y9PuWFdlOoXq7aIsSNBoNBmRDwM HVP5RslJd4s4QmXCTg+Ob4qdqGf+W23W5jOwJVVA5QY00OsEgPQ8olX1VtVsyIwIKGf9 yiGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WYhYomtoKb+dBpcccC3ApeW5khmLI2zP5wGR9wjr5qo=; fh=ZwaEcDYNCnlh+U7YxZ1LCEcet9pcdhSkEX0cCEOksvY=; b=0z3JiJESQLTD1LVxwZPx68Iu6k09qJO730IYBTrSwXT+7wTzYvhPF7cZcmUDpflLv2 +dWwEJo0TkNrn44srsMeJcEgzemYLmjXjvjJRGB8iv8JztyHHtRQT/eMngfaIZOCr3cU +eF+Sahb/AkkBN8HUJFRTua9kXtdXZED+Mgszrnw0je18sfUr8Nj4zmbglBG8shYf6jA 40zE/4eRAy+86Kr0qf5I6b6DJO/JxQ45E4IxX7GPctj+7v+3NFYIslOWoiiGTHxeu+fM Y7kxKLn1GPZ1rgu8KbO/JUzGNl+mv4wOi67XOoDw1u9AX/stDB+usbmalzXF5CiEu2up iaTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=mqRlBv1v; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x11-20020a170902a38b00b001b9d9b01303si9326217pla.628.2023.09.05.09.59.25; Tue, 05 Sep 2023 09:59:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=mqRlBv1v; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245482AbjIEQkt (ORCPT + 38 others); Tue, 5 Sep 2023 12:40:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351058AbjIEFFY (ORCPT ); Tue, 5 Sep 2023 01:05:24 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2BFE4CC5 for ; Mon, 4 Sep 2023 22:05:21 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id E93C7B810BF for ; Tue, 5 Sep 2023 05:05:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4539AC433CC; Tue, 5 Sep 2023 05:05:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1693890318; bh=ABB0VEm/1qgHSMYLRDciSz5DC9qBJP3kxsxjFgJZZ5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mqRlBv1vqa96SUYMcbu9CqLO4riJxpeOPL1O1q0+WVkfErtwpPiuAWmJBXlL/CkNh GlZFKTmh4i846st4IrBkX/SjpsAYo9tjGClQT/7NXjCB7XwfkV4EDMbYQ/c9p/wWLX nBu6J0PxAfr0p+Iv8u7PW4Yh1G5RMFd71YXTTKZHf7nEcswpK+iHFC/LrC1KY737pI zMriydFYzZCPZOu1BFB9Y/wRm4+Ee0X6x2zc4q6W2OmBtjftGEQlpcyK4EA/PD5951 KU8vTCqyRaTj4zYXiuz+gk+2TeRT3HhEBOi4NWz5PJ4kAYWJ8mIm0X4qXINPeeVhIW cM2g8oUsvimcQ== From: Josh Poimboeuf To: x86@kernel.org Cc: linux-kernel@vger.kernel.org, Borislav Petkov , Peter Zijlstra , Babu Moger , Paolo Bonzini , Sean Christopherson , David.Kaplan@amd.com, Andrew Cooper , Nikolay Borisov , gregkh@linuxfoundation.org, Thomas Gleixner Subject: [PATCH v3 19/20] x86/nospec: Refactor UNTRAIN_RET[_*] Date: Mon, 4 Sep 2023 22:05:03 -0700 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776217669953767940 X-GMAIL-MSGID: 1776217669953767940 Factor out the UNTRAIN_RET[_*] common bits into a helper macro. Signed-off-by: Josh Poimboeuf --- arch/x86/include/asm/nospec-branch.h | 31 +++++++++------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h index 51e3f1a287d2..dcc78477a38d 100644 --- a/arch/x86/include/asm/nospec-branch.h +++ b/arch/x86/include/asm/nospec-branch.h @@ -288,35 +288,24 @@ * As such, this must be placed after every *SWITCH_TO_KERNEL_CR3 at a point * where we have a stack but before any RET instruction. */ -.macro UNTRAIN_RET +.macro __UNTRAIN_RET ibpb_feature, call_depth_insns #if defined(CONFIG_RETHUNK) || defined(CONFIG_CPU_IBPB_ENTRY) VALIDATE_UNRET_END ALTERNATIVE_3 "", \ CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \ - "call entry_ibpb", X86_FEATURE_ENTRY_IBPB, \ - __stringify(RESET_CALL_DEPTH), X86_FEATURE_CALL_DEPTH + "call entry_ibpb", \ibpb_feature, \ + __stringify(\call_depth_insns), X86_FEATURE_CALL_DEPTH #endif .endm -.macro UNTRAIN_RET_VM -#if defined(CONFIG_RETHUNK) || defined(CONFIG_CPU_IBPB_ENTRY) - VALIDATE_UNRET_END - ALTERNATIVE_3 "", \ - CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \ - "call entry_ibpb", X86_FEATURE_IBPB_ON_VMEXIT, \ - __stringify(RESET_CALL_DEPTH), X86_FEATURE_CALL_DEPTH -#endif -.endm +#define UNTRAIN_RET \ + __UNTRAIN_RET X86_FEATURE_ENTRY_IBPB, __stringify(RESET_CALL_DEPTH) -.macro UNTRAIN_RET_FROM_CALL -#if defined(CONFIG_RETHUNK) || defined(CONFIG_CPU_IBPB_ENTRY) - VALIDATE_UNRET_END - ALTERNATIVE_3 "", \ - CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \ - "call entry_ibpb", X86_FEATURE_ENTRY_IBPB, \ - __stringify(RESET_CALL_DEPTH_FROM_CALL), X86_FEATURE_CALL_DEPTH -#endif -.endm +#define UNTRAIN_RET_VM \ + __UNTRAIN_RET X86_FEATURE_IBPB_ON_VMEXIT, __stringify(RESET_CALL_DEPTH) + +#define UNTRAIN_RET_FROM_CALL \ + __UNTRAIN_RET X86_FEATURE_ENTRY_IBPB, __stringify(RESET_CALL_DEPTH_FROM_CALL) .macro CALL_DEPTH_ACCOUNT