Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp596712imw; Fri, 8 Jul 2022 08:19:18 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u3RD41A8XSVRgcPi2U45UM7MGRolM3UyBHvCeCJd5vhNiwxfkh63ZpdqnopY/5uWWpyqt8 X-Received: by 2002:a17:90b:1a88:b0:1ed:5a12:514b with SMTP id ng8-20020a17090b1a8800b001ed5a12514bmr362838pjb.49.1657293558377; Fri, 08 Jul 2022 08:19:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657293558; cv=none; d=google.com; s=arc-20160816; b=usV7mmxlHULLMYKkvRZBN0ssxUC1PE0nTxM6p514mLhMTlKZ5KRxQWp2JzbkNQEYVy D7qXb6eFUuJCXb9oQVh6njKoqE7BFhr0KHT/LW7nK2M8w2FH5fqga/yqMVv/Mztby1qX 0Rnuf6dhrmOuSccRYMucWR/OuP8/x0shilDN1wI9zVG77dq8sGW+dTB3p1SJQa4a6j+V aZwlAHFU0HXPZhamvplRYZV7M6eWtA3phMTQj1WfeIVqYYdSXFYJZkmmJu7tMgg1CkCW 2SzDFiQ6biYjBFcaXM+eZmnN1Y2g3IOWbIysVj3tlo1CHjiV4rDFgtIWzCm9a3w99VI3 3hqQ== 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=LYxCdeBgY2v7hUJ/1PTLikXLQv6Mg4flMsecglN8j6I=; b=gmF9b8pXdav1Md7aquiYmLSq+Mc/UHqyKJ9xlWKXu0e3cRnv3jkML0YlB/hMMGyl60 lPZj6j02Q1IKJd3d9m6XFn9VYtdAN3HipAHhIoiC07MKK2CArdDU8q9cXXhlsLVROg48 1KfAhBrKlM5Ns3uapp2wTILhI552w+2zWneIzQrwuE1YSEznwOIzcM9rlWBJwT1rke09 JheyHNnp6up3pWKns0SVVjbH01jsR+cPygtGGSHqV3P7Kyt0cE3a9zj9cRGjqwuwqns5 GODy9pCTu/ZAqQ1EzsKYTWzmu/Iw/L5w+ax9tkbaaOjilDSQfrmsuZ0fGyaTqJ5V7dLu JAUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Qn32zxcb; 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=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h4-20020a170902f54400b00165bb998d85si35509407plf.619.2022.07.08.08.18.51; Fri, 08 Jul 2022 08:19:18 -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=@redhat.com header.s=mimecast20190719 header.b=Qn32zxcb; 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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238519AbiGHOnT (ORCPT + 99 others); Fri, 8 Jul 2022 10:43:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238463AbiGHOnF (ORCPT ); Fri, 8 Jul 2022 10:43:05 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DE1115A2FB for ; Fri, 8 Jul 2022 07:43:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657291379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LYxCdeBgY2v7hUJ/1PTLikXLQv6Mg4flMsecglN8j6I=; b=Qn32zxcbs8QdbHj7uDq+2XKYAJV0yQmIa4X/byZRFGWylmNs1wb3+OXXRdpLzyDY0+yuSH ywKYMpRJmw8qBdk7nDHnZbaHOVryInV4wfK6qBdgJcUiaDG/XOO/C5ry1lm3EPvugMt7xn KvxgN7+Qg3S4/E5OWI6qBIUv2SIWRpo= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-561-cwO1eyYUMciaJ1M6GbBgbg-1; Fri, 08 Jul 2022 10:42:55 -0400 X-MC-Unique: cwO1eyYUMciaJ1M6GbBgbg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CB8AF805F63; Fri, 8 Jul 2022 14:42:52 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.40.193.250]) by smtp.corp.redhat.com (Postfix) with ESMTP id BB16C492C3B; Fri, 8 Jul 2022 14:42:50 +0000 (UTC) From: Vitaly Kuznetsov To: kvm@vger.kernel.org, Paolo Bonzini , Sean Christopherson Cc: Anirudh Rayabharam , Wanpeng Li , Jim Mattson , Maxim Levitsky , linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 11/25] KVM: VMX: Get rid of eVMCS specific VMX controls sanitization Date: Fri, 8 Jul 2022 16:42:09 +0200 Message-Id: <20220708144223.610080-12-vkuznets@redhat.com> In-Reply-To: <20220708144223.610080-1-vkuznets@redhat.com> References: <20220708144223.610080-1-vkuznets@redhat.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 With the updated eVMCSv1 definition, there's no known 'problematic' controls which are exposed in VMX control MSRs but are not present in eVMCSv1. Get rid of VMX control MSRs filtering for KVM on Hyper-V. Note: VMX control MSRs filtering for Hyper-V on KVM (nested_evmcs_filter_control_msr()) stays as even the updated eVMCSv1 definition doesn't have all the features implemented by KVM and some fields are still missing. Moreover, nested_evmcs_filter_control_msr() has to support the original eVMCSv1 version when VMM wishes so. Signed-off-by: Vitaly Kuznetsov --- arch/x86/kvm/vmx/evmcs.c | 13 ------------- arch/x86/kvm/vmx/evmcs.h | 1 - arch/x86/kvm/vmx/vmx.c | 5 ----- 3 files changed, 19 deletions(-) diff --git a/arch/x86/kvm/vmx/evmcs.c b/arch/x86/kvm/vmx/evmcs.c index 52a53debd806..b5cfbf7d487b 100644 --- a/arch/x86/kvm/vmx/evmcs.c +++ b/arch/x86/kvm/vmx/evmcs.c @@ -320,19 +320,6 @@ const struct evmcs_field vmcs_field_to_evmcs_1[] = { }; const unsigned int nr_evmcs_1_fields = ARRAY_SIZE(vmcs_field_to_evmcs_1); -#if IS_ENABLED(CONFIG_HYPERV) -__init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf) -{ - vmcs_conf->cpu_based_exec_ctrl &= ~EVMCS1_UNSUPPORTED_EXEC_CTRL; - vmcs_conf->pin_based_exec_ctrl &= ~EVMCS1_UNSUPPORTED_PINCTRL; - vmcs_conf->cpu_based_2nd_exec_ctrl &= ~EVMCS1_UNSUPPORTED_2NDEXEC; - vmcs_conf->cpu_based_3rd_exec_ctrl = 0; - - vmcs_conf->vmexit_ctrl &= ~EVMCS1_UNSUPPORTED_VMEXIT_CTRL; - vmcs_conf->vmentry_ctrl &= ~EVMCS1_UNSUPPORTED_VMENTRY_CTRL; -} -#endif - bool nested_enlightened_vmentry(struct kvm_vcpu *vcpu, u64 *evmcs_gpa) { struct hv_vp_assist_page assist_page; diff --git a/arch/x86/kvm/vmx/evmcs.h b/arch/x86/kvm/vmx/evmcs.h index 4b809c79ae63..0feac101cce4 100644 --- a/arch/x86/kvm/vmx/evmcs.h +++ b/arch/x86/kvm/vmx/evmcs.h @@ -203,7 +203,6 @@ static inline void evmcs_load(u64 phys_addr) vp_ap->enlighten_vmentry = 1; } -__init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf); #else /* !IS_ENABLED(CONFIG_HYPERV) */ static __always_inline void evmcs_write64(unsigned long field, u64 value) {} static inline void evmcs_write32(unsigned long field, u32 value) {} diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index b4915d841357..dd905ad72637 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -2689,11 +2689,6 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf, vmcs_conf->vmexit_ctrl = _vmexit_control; vmcs_conf->vmentry_ctrl = _vmentry_control; -#if IS_ENABLED(CONFIG_HYPERV) - if (enlightened_vmcs) - evmcs_sanitize_exec_ctrls(vmcs_conf); -#endif - return 0; } -- 2.35.3