From patchwork Fri Jul 21 20:18:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 124085 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp455849vqg; Fri, 21 Jul 2023 13:46:44 -0700 (PDT) X-Google-Smtp-Source: APBJJlE0tRPtBnl7KAxX307N94xQuqIdnaGbvq9OYED0hxpG/iVVzEGQBKMf2A/HRGH+LNNadJ4G X-Received: by 2002:a05:6a20:1d0:b0:130:11e4:d693 with SMTP id 16-20020a056a2001d000b0013011e4d693mr3217744pzz.53.1689972403783; Fri, 21 Jul 2023 13:46:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689972403; cv=none; d=google.com; s=arc-20160816; b=O5Iy112qYkNabx7aPCkJk4IWOkC00SfChiDfa5n1qtMQm2zOu2s+YTeHqPpaDy+tsz 85J4Y1Ic7KFoqI6O5hoamOIasC/8y6wWGcbL8kGL4FUiZyiNPaFg2qeo3d1NwWgp8gxO sfcHRF9gM6IOLL08ASHTiRPLXqgmkMkxC3IEdYAP/H9rF5wSznGB+xMlv8RJsr3nzScD DpY8S1els33LYbCWn8x64Ei89Eui1AoaAACXC7fadrg628/DqiA1agNveYCc7KuR1Zwe wJDulWOy1kJvIRbhdLnYQ/FehJ035x0I9U3lOChHWL1DEfsXhMadbrFcN1RA2oFG26pU tQ8g== 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=vAOLLgTu+0QNT9Om4NpxWB91aAPEeSvRzwHwJVAa2Xs=; fh=GitwJflddDxrBBVhnTGEzIZYOBTU7RKSqL+OyCDv/0M=; b=YCQpxzolEde083Ai2Ika7+B+3eNFadq3nSJ64UqKOU2TaChO91qVvAkYzrvNOT7BuG p6bbtGmgoPLvojMBnwybpGZMHizS4232s7iMsWZ5bfJxU7PEoVoCtdbcrc/MMYAs8gNn PL5xBHe6uQyGhKJtllWozYe3yn1o+XtaGlfqLQPHA0t3Di7pjZythpZjflFQ3b80/VEH oF0cbOK07y7xZkLuymi7c+ywLptrAc+jsFCO/OBWfL2LhO53ix9ZDpVPBkgkbXRwK9lx bmG6E79iepckRNESRNUDnBFFnysYxUNAShp2eNXw0EhCcCxdwKxLWIOGu6bEcnHUG0By eH1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=imhgBKzx; 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 c8-20020a056a000ac800b006826f17d020si4047047pfl.243.2023.07.21.13.46.30; Fri, 21 Jul 2023 13:46:43 -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=@google.com header.s=20221208 header.b=imhgBKzx; 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 S231547AbjGUUVF (ORCPT + 99 others); Fri, 21 Jul 2023 16:21:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38750 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231229AbjGUUUq (ORCPT ); Fri, 21 Jul 2023 16:20:46 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD780359F for ; Fri, 21 Jul 2023 13:19:55 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5839bad0ba7so11013217b3.0 for ; Fri, 21 Jul 2023 13:19:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689970781; x=1690575581; 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=vAOLLgTu+0QNT9Om4NpxWB91aAPEeSvRzwHwJVAa2Xs=; b=imhgBKzxrXtouuf5PfcKL7zBn0uz33+q5k8Z0nIhm6BNxLjvMukg2vArkkk5NgTFDM NCaOxaOau0vLfoyQRsInuw+KAa7AslkSTBn6yul+5eiPK0IjOxtTfZI+5BUlLIVKvaaf zctolS0OU9qe/eA0SfoB4J52oxFAqZ+fh+FLtJaIaIPFFG750jsFlZ2Mc9quoQp2Unyu 4inyMQQxkm2n98I2kfK3YCgsPjNs4UlB9VWVghYk87tTe4jdkygy4sS2+Mqd1axuaOKZ Y80wBoNxrdfW0VnTAvlYpjVOt8tpfiwmBahTWl8/tfevz/dYYviEbtSr/R7buC1VS27v nuqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689970781; x=1690575581; 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=vAOLLgTu+0QNT9Om4NpxWB91aAPEeSvRzwHwJVAa2Xs=; b=DauQHLsbRiqO7ytJPcQtbJG8RaVZN73hfCe6Pj8jaohdtAVgsS+ma1FCpK8KAndWSc SWa/CHpGmWOGyfunjcGLHC6fmGW3OPnFoeLI4f7NqAnBH02ZtqPYrendrrexfgZ7MVu3 WHdkYMtcJGpCGTXkgwE3O9lBx1dqfGQt/q6zve5RH65R++1TzH98wUdE1RTA6W08YPMF muVhRUgo1htmQrvk4bqKC30B+QbfV+PLEeW+zuFdwx5dTJznIo/vCiTHwlohPTXTFos3 S6G648iV1bxBC2CFVsXDgmbcX31yWU+mHYfIMCPx1C6PZ6VcUvTjR1z0wzJ+J0fnHADq wNeg== X-Gm-Message-State: ABy/qLZdBhwI1JNWVciQn8xZBklDUQaLNN56i7+/GmVKJ6ZRGynPhqZB MgbrefUPfvc6iBInBhJDz4ifXcvDx1o= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:81cf:0:b0:c5d:dac2:cb2a with SMTP id n15-20020a2581cf000000b00c5ddac2cb2amr18050ybm.13.1689970781205; Fri, 21 Jul 2023 13:19:41 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 21 Jul 2023 13:18:58 -0700 In-Reply-To: <20230721201859.2307736-1-seanjc@google.com> Mime-Version: 1.0 References: <20230721201859.2307736-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.487.g6d72f3e995-goog Message-ID: <20230721201859.2307736-19-seanjc@google.com> Subject: [PATCH v4 18/19] 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_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, 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: INBOX X-GMAIL-THRID: 1772064503500655907 X-GMAIL-MSGID: 1772064503500655907 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 8d1b3c801629..4785d780cce3 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -588,17 +588,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); } }