mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Yosry Ahmed <yosry.ahmed@linux.dev>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Yosry Ahmed <yosry.ahmed@linux.dev>,
	stable@vger.kernel.org
Subject: [PATCH v4 09/26] KVM: nSVM: Make nested_svm_merge_msrpm() return an errno
Date: Thu, 15 Jan 2026 01:12:55 +0000	[thread overview]
Message-ID: <20260115011312.3675857-10-yosry.ahmed@linux.dev> (raw)
In-Reply-To: <20260115011312.3675857-1-yosry.ahmed@linux.dev>

In preparation for moving nested_svm_merge_msrpm() within
enter_svm_guest_mode(), which returns an errno, return an errno from
nested_svm_merge_msrpm().

No functional change intended.

Cc: stable@vger.kernel.org
Signed-off-by: Yosry Ahmed <yosry.ahmed@linux.dev>
---
 arch/x86/kvm/svm/nested.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
index 536ca8e1d29f..0915785f7770 100644
--- a/arch/x86/kvm/svm/nested.c
+++ b/arch/x86/kvm/svm/nested.c
@@ -277,7 +277,7 @@ int __init nested_svm_init_msrpm_merge_offsets(void)
  * is optimized in that it only merges the parts where KVM MSR permission bitmap
  * may contain zero bits.
  */
-static bool nested_svm_merge_msrpm(struct kvm_vcpu *vcpu)
+static int nested_svm_merge_msrpm(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
 	nsvm_msrpm_merge_t *msrpm02 = svm->nested.msrpm;
@@ -304,17 +304,19 @@ static bool nested_svm_merge_msrpm(struct kvm_vcpu *vcpu)
 #endif
 
 	if (!(vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_MSR_PROT)))
-		return true;
+		return 0;
 
 	for (i = 0; i < nested_svm_nr_msrpm_merge_offsets; i++) {
 		const int p = nested_svm_msrpm_merge_offsets[i];
 		nsvm_msrpm_merge_t l1_val;
 		gpa_t gpa;
+		int r;
 
 		gpa = svm->nested.ctl.msrpm_base_pa + (p * sizeof(l1_val));
 
-		if (kvm_vcpu_read_guest(vcpu, gpa, &l1_val, sizeof(l1_val)))
-			return false;
+		r = kvm_vcpu_read_guest(vcpu, gpa, &l1_val, sizeof(l1_val));
+		if (r)
+			return r;
 
 		msrpm02[p] = msrpm01[p] | l1_val;
 	}
@@ -326,7 +328,7 @@ static bool nested_svm_merge_msrpm(struct kvm_vcpu *vcpu)
 #endif
 	svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm));
 
-	return true;
+	return 0;
 }
 
 /*
@@ -1040,7 +1042,7 @@ int nested_svm_vmrun(struct kvm_vcpu *vcpu)
 	if (enter_svm_guest_mode(vcpu, vmcb12_gpa, vmcb12, true))
 		goto out_exit_err;
 
-	if (nested_svm_merge_msrpm(vcpu))
+	if (!nested_svm_merge_msrpm(vcpu))
 		goto out;
 
 out_exit_err:
@@ -1941,7 +1943,7 @@ static bool svm_get_nested_state_pages(struct kvm_vcpu *vcpu)
 		if (CC(!load_pdptrs(vcpu, vcpu->arch.cr3)))
 			return false;
 
-	if (!nested_svm_merge_msrpm(vcpu)) {
+	if (nested_svm_merge_msrpm(vcpu)) {
 		vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR;
 		vcpu->run->internal.suberror =
 			KVM_INTERNAL_ERROR_EMULATION;
-- 
2.52.0.457.g6b5491de43-goog


  parent reply	other threads:[~2026-01-15  1:13 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-15  1:12 [PATCH v4 00/26] Nested SVM fixes, cleanups, and hardening Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 01/26] KVM: SVM: Switch svm_copy_lbrs() to a macro Yosry Ahmed
2026-02-06  0:59   ` Sean Christopherson
2026-02-06  1:12     ` Yosry Ahmed
2026-02-06  1:25       ` Sean Christopherson
2026-02-06 15:13         ` Yosry Ahmed
2026-02-06 15:54           ` Sean Christopherson
2026-01-15  1:12 ` [PATCH v4 02/26] KVM: SVM: Add missing save/restore handling of LBR MSRs Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 03/26] KVM: selftests: Add a test for LBR save/restore (ft. nested) Yosry Ahmed
2026-02-06  1:03   ` Sean Christopherson
2026-01-15  1:12 ` [PATCH v4 04/26] KVM: nSVM: Always inject a #GP if mapping VMCB12 fails on nested VMRUN Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 05/26] KVM: nSVM: Triple fault if mapping VMCB12 fails on nested #VMEXIT Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 06/26] KVM: nSVM: Triple fault if restore host CR3 " Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 07/26] KVM: nSVM: Drop nested_vmcb_check_{save/control}() wrappers Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 08/26] KVM: nSVM: Call enter_guest_mode() before switching to VMCB02 Yosry Ahmed
2026-01-15  1:12 ` Yosry Ahmed [this message]
2026-01-15  1:12 ` [PATCH v4 10/26] KVM: nSVM: Call nested_svm_merge_msrpm() from enter_svm_guest_mode() Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 11/26] KVM: nSVM: Call nested_svm_init_mmu_context() before switching to VMCB02 Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 12/26] KVM: nSVM: Refactor minimal #VMEXIT handling out of nested_svm_vmexit() Yosry Ahmed
2026-01-15  1:12 ` [PATCH v4 13/26] KVM: nSVM: Unify handling of VMRUN failures with proper cleanup Yosry Ahmed
2026-02-06  0:47   ` Sean Christopherson
2026-02-06 15:40     ` Yosry Ahmed
2026-02-06  1:20   ` Sean Christopherson
2026-01-15  1:13 ` [PATCH v4 14/26] KVM: nSVM: Clear EVENTINJ field in VMCB12 on nested #VMEXIT Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 15/26] KVM: nSVM: Drop the non-architectural consistency check for NP_ENABLE Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 16/26] KVM: nSVM: Add missing consistency check for nCR3 validity Yosry Ahmed
2026-01-22  1:38   ` Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 17/26] KVM: nSVM: Add missing consistency check for hCR0.PG and NP_ENABLE Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 18/26] KVM: nSVM: Add missing consistency check for EFER, CR0, CR4, and CS Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 19/26] KVM: nSVM: Add missing consistency check for event_inj Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 20/26] KVM: SVM: Rename vmcb->nested_ctl to vmcb->misc_ctl Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 21/26] KVM: SVM: Rename vmcb->virt_ext to vmcb->misc_ctl2 Yosry Ahmed
2026-02-06  1:31   ` Sean Christopherson
2026-02-06 16:04     ` Yosry Ahmed
2026-02-06 17:58       ` Sean Christopherson
2026-01-15  1:13 ` [PATCH v4 22/26] KVM: SVM: Use BIT() and GENMASK() for definitions in svm.h Yosry Ahmed
2026-02-06  1:37   ` Sean Christopherson
2026-02-06 15:45     ` Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 23/26] KVM: nSVM: Cache all used fields from VMCB12 Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 24/26] KVM: nSVM: Restrict mapping VMCB12 on nested VMRUN Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 25/26] KVM: nSVM: Sanitize control fields copied from VMCB12 Yosry Ahmed
2026-01-15  1:13 ` [PATCH v4 26/26] KVM: nSVM: Only copy NP_ENABLE from VMCB01's misc_ctl Yosry Ahmed
2026-02-06  1:38 ` [PATCH v4 00/26] Nested SVM fixes, cleanups, and hardening Sean Christopherson

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=20260115011312.3675857-10-yosry.ahmed@linux.dev \
    --to=yosry.ahmed@linux.dev \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=stable@vger.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

all inboxes | Powered by JetHome®