From: Sean Christopherson <seanjc@google.com>
To: Yosry Ahmed <yosry@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH v7 15/26] KVM: nSVM: Add missing consistency check for nCR3 validity
Date: Tue, 3 Mar 2026 08:56:15 -0800 [thread overview]
Message-ID: <aacSr2LanhJczBs-@google.com> (raw)
In-Reply-To: <20260303003421.2185681-16-yosry@kernel.org>
On Tue, Mar 03, 2026, Yosry Ahmed wrote:
> >From the APM Volume #2, 15.25.4 (24593—Rev. 3.42—March 2024):
>
> When VMRUN is executed with nested paging enabled
> (NP_ENABLE = 1), the following conditions are considered illegal
> state combinations, in addition to those mentioned in
> “Canonicalization and Consistency Checks”:
> • Any MBZ bit of nCR3 is set.
> • Any G_PAT.PA field has an unsupported type encoding or any
> reserved field in G_PAT has a nonzero value.
>
> Add the consistency check for nCR3 being a legal GPA with no MBZ bits
> set. The G_PAT.PA check was proposed separately [*].
>
> [*]https://lore.kernel.org/kvm/20260205214326.1029278-3-jmattson@google.com/
>
> Fixes: 4b16184c1cca ("KVM: SVM: Initialize Nested Nested MMU context on VMRUN")
> Cc: stable@vger.kernel.org
> Signed-off-by: Yosry Ahmed <yosry@kernel.org>
> ---
> arch/x86/kvm/svm/nested.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
> index 613d5e2e7c3d1..3aaa4f0bb31ab 100644
> --- a/arch/x86/kvm/svm/nested.c
> +++ b/arch/x86/kvm/svm/nested.c
> @@ -348,6 +348,11 @@ static bool nested_vmcb_check_controls(struct kvm_vcpu *vcpu,
> if (CC(control->asid == 0))
> return false;
>
> + if (control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) {
> + if (CC(!kvm_vcpu_is_legal_gpa(vcpu, control->nested_cr3)))
> + return false;
Put the full if-statement in CC(), that way the tracepoint will capture the entire
clause, i.e. will help the reader understand than nested_cr3 was checked
specifically because NPT was enabled.
if (CC((control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) &&
!kvm_vcpu_is_legal_gpa(vcpu, control->nested_cr3)))
return false;
next prev parent reply other threads:[~2026-03-03 16:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260303003421.2185681-1-yosry@kernel.org>
2026-03-03 0:33 ` [PATCH v7 01/26] KVM: nSVM: Avoid clearing VMCB_LBR in vmcb12 Yosry Ahmed
2026-03-03 0:33 ` [PATCH v7 02/26] KVM: SVM: Switch svm_copy_lbrs() to a macro Yosry Ahmed
2026-03-03 0:33 ` [PATCH v7 03/26] KVM: SVM: Add missing save/restore handling of LBR MSRs Yosry Ahmed
2026-03-03 16:37 ` Sean Christopherson
2026-03-03 19:14 ` Yosry Ahmed
2026-03-04 0:44 ` Sean Christopherson
2026-03-04 0:48 ` Yosry Ahmed
2026-03-03 0:33 ` [PATCH v7 05/26] KVM: nSVM: Always inject a #GP if mapping VMCB12 fails on nested VMRUN Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 06/26] KVM: nSVM: Refactor checking LBRV enablement in vmcb12 into a helper Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 07/26] KVM: nSVM: Refactor writing vmcb12 on nested #VMEXIT as " Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 08/26] KVM: nSVM: Triple fault if mapping VMCB12 fails on nested #VMEXIT Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 09/26] KVM: nSVM: Triple fault if restore host CR3 " Yosry Ahmed
2026-03-03 16:49 ` Sean Christopherson
2026-03-03 19:15 ` Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 10/26] KVM: nSVM: Clear GIF on nested #VMEXIT(INVALID) Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 11/26] KVM: nSVM: Clear EVENTINJ fields in vmcb12 on nested #VMEXIT Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 12/26] KVM: nSVM: Clear tracking of L1->L2 NMI and soft IRQ " Yosry Ahmed
2026-03-03 16:50 ` Sean Christopherson
2026-03-03 19:15 ` Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 13/26] KVM: nSVM: Drop nested_vmcb_check_{save/control}() wrappers Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 14/26] KVM: nSVM: Drop the non-architectural consistency check for NP_ENABLE Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 15/26] KVM: nSVM: Add missing consistency check for nCR3 validity Yosry Ahmed
2026-03-03 16:56 ` Sean Christopherson [this message]
2026-03-03 19:17 ` Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 16/26] KVM: nSVM: Add missing consistency check for EFER, CR0, CR4, and CS Yosry Ahmed
2026-03-03 0:34 ` [PATCH v7 17/26] KVM: nSVM: Add missing consistency check for EVENTINJ Yosry Ahmed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aacSr2LanhJczBs-@google.com \
--to=seanjc@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stable@vger.kernel.org \
--cc=yosry@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox