Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp2882302rwb; Mon, 15 Aug 2022 13:14:18 -0700 (PDT) X-Google-Smtp-Source: AA6agR63LftcIXF4ZlfS/xw06Orj/vLbyPP+9R/99gE8d2lwI6u7nP00eHTp8+PIeXY29E5wk03n X-Received: by 2002:aa7:cd51:0:b0:440:595d:aeed with SMTP id v17-20020aa7cd51000000b00440595daeedmr15909421edw.143.1660594458759; Mon, 15 Aug 2022 13:14:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660594458; cv=none; d=google.com; s=arc-20160816; b=SPgmUU5mLltLSrAGfpu3iuR4QZppUjSpOnZtdUC9WhmW0iobuXvFpuPb3MOFRVIEJZ 6WQF4Gx4ECJ9kHh3lKmLKovVI4E0xoIPhSnU7LXVHSmJnGfJugJg8sC2o3WaK8PHhEZy GPqPqdr00Qd0gUAsew0J3vQ4xE4gbY9INWyu79TqS3EBMdqvWDr7JQfcA3dkBFlazUwK ZtE7uOcSXfpWglg1hVQXODhSGys0+Ip5PF6Eywgakktw2MMzbFACusJfKMgMfujHVW1Z ZtUkfUaF99J0mECoGmei+m5D0dxntI+V7K9BRpq2FeWHZY5XMekFtrqJjPr3LE+JqdzT +sMw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=gR9H9o9BIcFNqAmbsGLnxGFq9Vc7veQ2ffnl5DySfoM=; b=0o45ANgb5Qh5etiXb8D6h/yrv5hCk0k65TBitVA17bPHmzT7/d96aNojgDCANk0Ce+ y20rz1areRZQjzfWqIsuiFANCftSV0WDDgaAfLcX2kN567XfSYoA/pTy9eE3dkXiab4/ AWwtbxnVg/ESQ6dvBBE6X51QbWx82Cc+95SCwKhijdNZLN7uBCFoIuMFZHiraNEPI6kU eCUGLrqouUmwLzJ71nkjAldz9Q5vpQ3TQyWVNv5gyo69xGMLvN/Q7B9vXKBOqvwoXNN8 0tVk+KGNAZ8LGKY0+vyqi1Uiv1IYi0Vum2huDgGItZZnnaipt7gpSdqCvOnBs+8+7tLU avgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=agu0GFxR; 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=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h9-20020a056402280900b00442c272f4f7si9905982ede.537.2022.08.15.13.13.53; Mon, 15 Aug 2022 13:14: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=@linuxfoundation.org header.s=korg header.b=agu0GFxR; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240939AbiHOT2F (ORCPT + 99 others); Mon, 15 Aug 2022 15:28:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245627AbiHOTXm (ORCPT ); Mon, 15 Aug 2022 15:23:42 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A603F2E6AB; Mon, 15 Aug 2022 11:40:50 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 190E1CE1268; Mon, 15 Aug 2022 18:40:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E3D6C433D6; Mon, 15 Aug 2022 18:40:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660588847; bh=MDjOWR3mdEcU0zgLl2F8s7Mx4q697ts3JyTlo8tcbgw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=agu0GFxRmFrRDaxBr2e5M1NWPPAN73LKcBvENMU9SiQTamKtNOU2bvznTJeKJTJIr IQn0B0rqxRL5NZGBv8qRRGqAO/B2MaKbGsMxY648P8etKhlurkLZhtWGCsfHELYZVJ liLSIMVg2TsexoeY8Zds9dIWFOzyIF/B6nheYn4I= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sean Christopherson , Paolo Bonzini , Sasha Levin Subject: [PATCH 5.15 534/779] KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP Date: Mon, 15 Aug 2022 20:02:58 +0200 Message-Id: <20220815180400.122076727@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180337.130757997@linuxfoundation.org> References: <20220815180337.130757997@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 From: Sean Christopherson [ Upstream commit a910b5ab6b250a88fff1866bf708642d83317466 ] Make UMIP an "allowed-1" bit CR4_FIXED1 MSR when KVM is emulating UMIP. KVM emulates UMIP for both L1 and L2, and so should enumerate that L2 is allowed to have CR4.UMIP=1. Not setting the bit doesn't immediately break nVMX, as KVM does set/clear the bit in CR4_FIXED1 in response to a guest CPUID update, i.e. KVM will correctly (dis)allow nested VM-Entry based on whether or not UMIP is exposed to L1. That said, KVM should enumerate the bit as being allowed from time zero, e.g. userspace will see the wrong value if the MSR is read before CPUID is written. Fixes: 0367f205a3b7 ("KVM: vmx: add support for emulating UMIP") Signed-off-by: Sean Christopherson Message-Id: <20220607213604.3346000-12-seanjc@google.com> Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kvm/vmx/nested.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c index 256a2aba830a..9f845556dde8 100644 --- a/arch/x86/kvm/vmx/nested.c +++ b/arch/x86/kvm/vmx/nested.c @@ -6736,6 +6736,9 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps) rdmsrl(MSR_IA32_VMX_CR0_FIXED1, msrs->cr0_fixed1); rdmsrl(MSR_IA32_VMX_CR4_FIXED1, msrs->cr4_fixed1); + if (vmx_umip_emulated()) + msrs->cr4_fixed1 |= X86_CR4_UMIP; + msrs->vmcs_enum = nested_vmx_calc_vmcs_enum_msr(); } -- 2.35.1