From patchwork Fri Mar 10 21:42:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 67767 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1122332wrd; Fri, 10 Mar 2023 14:08:36 -0800 (PST) X-Google-Smtp-Source: AK7set/d0dL2wyqOe9vuHa63OgLU8QN39b+1DFSCwx5ylCR/nZQ1T5dQ1qIHjBjIDhpyZnYHaZxi X-Received: by 2002:a17:90a:e7c5:b0:229:9aac:abb6 with SMTP id kb5-20020a17090ae7c500b002299aacabb6mr6531457pjb.47.1678486115813; Fri, 10 Mar 2023 14:08:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678486115; cv=none; d=google.com; s=arc-20160816; b=NrrJWoN0yCWZWMqlzvQ515yjqvBtsucV/sAJ7L/a74t03laky1cdi9YgovQKWUhgMU q3X7WrodV477zjEtEqNH8vdo54jrkZJtQMPzQaA7LRllO/w45nV5OKEYMwsAl7jOH15A IlSmyloY/pY0539HE4psGJ+cUtSdFhFT6GSvwmpnKiVw4pZkKRorr9okSFVg42rydZA6 O0J721aIe5jyAb6ZPMVQEEWjvCugOoMIfmlDmbSuAWZwjsdLdc18CeDBLj+diuoCdED+ BQXh7rj5hw7LEDqV/lDauEBgMS+fiUZmFZTs5lCL3+JTTEikjpd4sezSIZJUzf2K3hG1 Z+Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=qBcz2mERBbm0KpMlPQ5X2eESMX5T/tz8It36IggkYIA=; b=sFUhCbLF7ZzleYxDtT9G8i3XxQIrTiRO3FUxnbR35KdwtSb1Tw5slPu/e0RCT1L6r8 9phaCiOfQ4W7nunna0Hpkey4TRcGN+i8WYYWwmTkNFIvm7VZlXayqDD6fex/8llYVlUh 39QVZzU8yLyC7K1GBsvBW24S2aq+VBMcO3dnw1hIl8ogkqzETUtzMgPgeulrC3pjemhy Pa6nImx5BZk+mfmprn+srXP1dKGBrkF6IQYOFHukWeupCuNbmAWwQSYIQufZNcTv+P4k CnRZiWRol/lDsufqr3D0nC4qoBNS/Xrom/c2z/z9WHRd7Ft+qAGAtNwXffMiptSH/DTf V/xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=UEkYJ+O3; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y124-20020a633282000000b00502d60b07fasi763676pgy.127.2023.03.10.14.08.22; Fri, 10 Mar 2023 14:08:35 -0800 (PST) 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=@google.com header.s=20210112 header.b=UEkYJ+O3; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231715AbjCJVpP (ORCPT + 99 others); Fri, 10 Mar 2023 16:45:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231992AbjCJVoY (ORCPT ); Fri, 10 Mar 2023 16:44:24 -0500 Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com [IPv6:2607:f8b0:4864:20::1049]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F14C5D332A for ; Fri, 10 Mar 2023 13:43:30 -0800 (PST) Received: by mail-pj1-x1049.google.com with SMTP id ip3-20020a17090b314300b00237c16adf30so4908613pjb.5 for ; Fri, 10 Mar 2023 13:43:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678484592; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=qBcz2mERBbm0KpMlPQ5X2eESMX5T/tz8It36IggkYIA=; b=UEkYJ+O3FYHxietZ/9hAIbIUniSp/D7b6gTZnFmpwt1cBGPLj+kXoryW0lD96tZQgz m8Yb/jQogzJSm2E+TseAdhxD3HjqaK22W/PC3jPBvSM74PPG7Vrc41OG5fJ58gZ4z6bK db1+jL5vBqa1CEAzNSijqkX1/bUAYY4RpYhsOIcS0W5cZDBXijQ6rl5Pm8byrieIRV/w nYjv0LL2gp6muNmL2ltR/9l4nY8VjbYslT24BRnOLbdcY6oaGb6rs+SymF/oAV8IV5Xi BVjIxtnCgQRlbXdnUYaBEfaeuHopSMyHbuorSLBPuiA632srVjIZa83WsFi+DWNhkhsp 03KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678484592; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qBcz2mERBbm0KpMlPQ5X2eESMX5T/tz8It36IggkYIA=; b=MFSRNZYOvH3S1JvY5FB5P6drkt0Di3H+EJHOZ4+kyOod5VV5BxfbYX5gd2/9qvdtYK GjOYhS2AGrmh5BSlh9cTDr/TyYyFu2CYibceeGh/W+OFIfp6z6jNtklqpICbUclxtLkV zDkLsX21RVGKqDy/eU9ABeVSePAEiQhamnfvT64zm7JE+7QaezDzaS0n4JbUrx4z7I3l DrScQIDWY2iSeYQVZ0WEFjSw2t89jARO0pJ68gAKkH11Jx+kMwxH62OhrPGxKuMuB+6Y dt23Kamqhg1B+/NFPI6ZgSZ/HJBR340mnaa4EbaN2Ze+Y02IbHAhswfN8hBaaGhljd8K 0TUA== X-Gm-Message-State: AO0yUKUQ/sZeakEiqGuckvyevC07qMfTpJkVhL9fDzin57eJ4yfYzz+l SePV/vgSa7x8T90xEaGv7zqqAaxis90= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a62:dbc5:0:b0:5df:9809:621f with SMTP id f188-20020a62dbc5000000b005df9809621fmr11079354pfg.0.1678484592298; Fri, 10 Mar 2023 13:43:12 -0800 (PST) Reply-To: Sean Christopherson Date: Fri, 10 Mar 2023 13:42:32 -0800 In-Reply-To: <20230310214232.806108-1-seanjc@google.com> Mime-Version: 1.0 References: <20230310214232.806108-1-seanjc@google.com> X-Mailer: git-send-email 2.40.0.rc1.284.g88254d51c5-goog Message-ID: <20230310214232.806108-19-seanjc@google.com> Subject: [PATCH v2 18/18] KVM: SVM: Use "standard" stgi() helper when disabling SVM From: Sean Christopherson To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Sean Christopherson , Paolo Bonzini Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Andrew Cooper , Kai Huang , Chao Gao X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760020257242455710?= X-GMAIL-MSGID: =?utf-8?q?1760020257242455710?= Now that kvm_rebooting is guaranteed to be true prior to disabling SVM in an emergency, use the existing stgi() helper instead of open coding STGI. In effect, eat faults on STGI if and only if kvm_rebooting==true. Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/svm.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 30f7840151be..420b35770f0a 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -591,17 +591,10 @@ static inline void kvm_cpu_svm_disable(void) rdmsrl(MSR_EFER, efer); if (efer & EFER_SVME) { /* - * Force GIF=1 prior to disabling SVM to ensure INIT and NMI - * aren't blocked, e.g. if a fatal error occurred between CLGI - * and STGI. Note, STGI may #UD if SVM is disabled from NMI - * context between reading EFER and executing STGI. In that - * case, GIF must already be set, otherwise the NMI would have - * been blocked, so just eat the fault. + * Force GIF=1 prior to disabling SVM, e.g. to ensure INIT and + * NMI aren't blocked. */ - asm_volatile_goto("1: stgi\n\t" - _ASM_EXTABLE(1b, %l[fault]) - ::: "memory" : fault); -fault: + stgi(); wrmsrl(MSR_EFER, efer & ~EFER_SVME); } }