Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4654207pxj; Wed, 12 May 2021 10:08:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzESFnRHdfki8KyM3MOfdEd0TzQgOL0IhWaRFLnnYP1/iNGpWvJG9tWsjU12w0ldTSllIKZ X-Received: by 2002:a17:906:eca9:: with SMTP id qh9mr38310277ejb.258.1620839311326; Wed, 12 May 2021 10:08:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620839311; cv=none; d=google.com; s=arc-20160816; b=BsBntImb3a49EgnglpyG330tJDQpMO86cLB9+V+uJhrq+51sKP++48ivyjx075Mkb/ V+Qv+pyMjUids9/1gRFugc8y3QkpQd5BNK5L1hG5fY44BbJdoEoNlm+ncRkhV7o37E5a UbcFYucyQYH3gsMHxslKiN0UFhoayAhe+cG8SHW70PO7XIrpBB+FKZjY/DUbKRrjNbu/ A/W2x5YH/vyuIgMarAiUv4RtZTE+dLHN9XVGyn0ZbEXDGmBlWUxWn5JNFmeQ8YdjxQd/ C7mECvCTKemp61St3fgBELGeXh6e73AcFag6690sz86oyQ8lYUfXnCn3REfImWNE6tW7 FvjQ== 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=fc6lU+4YO8EUU21N4HyEMJMLHT7BI/26LZ6v7P/VDNY=; b=lxEYvX3XtTFsf0uyOiNigtwGTFXpy7qvvBpJ7W91vuZe5VlwI0TbzO6s0EuAr3JTV8 vsJwLzfMC4fwRqd9PP6XnFWrVTynyo9ByAe6crL7vaOFo6DIWj1Juxluuu4X3qiQHE7N 1TwiRctQ169OlM74KB5FvQ+hOOsaXrNpVCw61GXKd1mhjaZsncq9ImYa/PwMf/9ahjOb cP5i3T0nPEsMYpoqpIhKpITUFsnmza2gGRnuGx1vMF4L6islkaeE8qtyp4pBVnug4/NV DPIXTztLH+edcHhvDenYYdVGXUJUNwLyZVxNB855R04V/4f177Jmam3he48wAWdmXczl 24SQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FT9Wcm6f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b7si280125ede.263.2021.05.12.10.08.06; Wed, 12 May 2021 10:08:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FT9Wcm6f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1344451AbhELRHH (ORCPT + 99 others); Wed, 12 May 2021 13:07:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:38260 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237823AbhELP40 (ORCPT ); Wed, 12 May 2021 11:56:26 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5343A61C1F; Wed, 12 May 2021 15:28:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620833313; bh=NwwKEXoPlv+sAELIGDJSvIB9gGK5FXp1H0JLpLvCksg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FT9Wcm6ffe045E+hCUTyieEPOjYqa/T23oB1P7pNiMrwLk5K1dirYB0LEuGGnAC+z Re7+nzUHmENVATgdndRRj1e+IUFo9J4vsWi4EhzxBm6Q3glt3IJ0waFSuUdIMNQEcY M7Kslv2+4r1Y+OsXxAD4tjJeHE8rJ/oa0O5Syc8s= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sean Christopherson , Paolo Bonzini Subject: [PATCH 5.11 099/601] KVM: nSVM: Set the shadow root level to the TDP level for nested NPT Date: Wed, 12 May 2021 16:42:56 +0200 Message-Id: <20210512144831.094006360@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sean Christopherson commit a3322d5cd87fef5ec0037fd1b14068a533f9a60f upstream. Override the shadow root level in the MMU context when configuring NPT for shadowing nested NPT. The level is always tied to the TDP level of the host, not whatever level the guest happens to be using. Fixes: 096586fda522 ("KVM: nSVM: Correctly set the shadow NPT root level in its MMU role") Cc: stable@vger.kernel.org Signed-off-by: Sean Christopherson Message-Id: <20210305011101.3597423-2-seanjc@google.com> Signed-off-by: Paolo Bonzini Signed-off-by: Greg Kroah-Hartman --- arch/x86/kvm/mmu/mmu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -4630,12 +4630,17 @@ void kvm_init_shadow_npt_mmu(struct kvm_ struct kvm_mmu *context = &vcpu->arch.guest_mmu; union kvm_mmu_role new_role = kvm_calc_shadow_npt_root_page_role(vcpu); - context->shadow_root_level = new_role.base.level; - __kvm_mmu_new_pgd(vcpu, nested_cr3, new_role.base, false, false); - if (new_role.as_u64 != context->mmu_role.as_u64) + if (new_role.as_u64 != context->mmu_role.as_u64) { shadow_mmu_init_context(vcpu, context, cr0, cr4, efer, new_role); + + /* + * Override the level set by the common init helper, nested TDP + * always uses the host's TDP configuration. + */ + context->shadow_root_level = new_role.base.level; + } } EXPORT_SYMBOL_GPL(kvm_init_shadow_npt_mmu);