From: Sean Christopherson <seanjc@google.com>
To: Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
Xiaoyao Li <xiaoyao.li@intel.com>,
Binbin Wu <binbin.wu@linux.intel.com>,
Kai Huang <kai.huang@intel.com>, Yan Zhao <yan.y.zhao@intel.com>
Subject: [PATCH v2 7/8] KVM: VMX: Move common VT getters/converters to common.h
Date: Wed, 26 Aug 2026 10:12:45 -0700 [thread overview]
Message-ID: <20260826171246.777729-8-seanjc@google.com> (raw)
In-Reply-To: <20260826171246.777729-1-seanjc@google.com>
Move the "to" vCPU converters and common exit information getters from
vmx.h to common.h to capture that they are indeed common VT code. Defer
renaming their prefixes to isolate the code movement from the massive
churn that will result from said renaming.
No functional change intended.
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
arch/x86/kvm/vmx/common.h | 44 +++++++++++++++++++++++++++++++++++++++
arch/x86/kvm/vmx/vmx.h | 42 -------------------------------------
2 files changed, 44 insertions(+), 42 deletions(-)
diff --git a/arch/x86/kvm/vmx/common.h b/arch/x86/kvm/vmx/common.h
index 35b54938a5f5..c9ca0824734a 100644
--- a/arch/x86/kvm/vmx/common.h
+++ b/arch/x86/kvm/vmx/common.h
@@ -2,10 +2,12 @@
#ifndef __KVM_X86_VMX_COMMON_H
#define __KVM_X86_VMX_COMMON_H
+#include <linux/container_of.h>
#include <linux/kvm_host.h>
#include <asm/posted_intr.h>
#include "mmu.h"
+#include "vmx_ops.h"
union vmx_exit_reason {
struct {
@@ -74,6 +76,48 @@ static __always_inline bool is_td_vcpu(struct kvm_vcpu *vcpu) { return false; }
#endif
+struct vcpu_vmx_tdx {
+ struct kvm_vcpu vcpu;
+ struct vcpu_vt vt;
+};
+
+static __always_inline struct vcpu_vt *to_vt(struct kvm_vcpu *vcpu)
+{
+ return &(container_of(vcpu, struct vcpu_vmx_tdx, vcpu)->vt);
+}
+
+static __always_inline struct kvm_vcpu *vt_to_vcpu(struct vcpu_vt *vt)
+{
+ return &(container_of(vt, struct vcpu_vmx_tdx, vt)->vcpu);
+}
+
+static __always_inline union vmx_exit_reason vmx_get_exit_reason(struct kvm_vcpu *vcpu)
+{
+ return to_vt(vcpu)->exit_reason;
+}
+
+static __always_inline unsigned long vmx_get_exit_qual(struct kvm_vcpu *vcpu)
+{
+ struct vcpu_vt *vt = to_vt(vcpu);
+
+ if (!kvm_register_test_and_mark_available(vcpu, VCPU_REG_EXIT_INFO_1) &&
+ !WARN_ON_ONCE(is_td_vcpu(vcpu)))
+ vt->exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
+
+ return vt->exit_qualification;
+}
+
+static __always_inline u32 vmx_get_intr_info(struct kvm_vcpu *vcpu)
+{
+ struct vcpu_vt *vt = to_vt(vcpu);
+
+ if (!kvm_register_test_and_mark_available(vcpu, VCPU_REG_EXIT_INFO_2) &&
+ !WARN_ON_ONCE(is_td_vcpu(vcpu)))
+ vt->exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
+
+ return vt->exit_intr_info;
+}
+
static inline bool is_xfd_nm_fault(struct kvm_vcpu *vcpu)
{
return vcpu->arch.guest_fpu.fpstate->xfd &&
diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h
index 0415d328e1a5..3247b55b3484 100644
--- a/arch/x86/kvm/vmx/vmx.h
+++ b/arch/x86/kvm/vmx/vmx.h
@@ -304,48 +304,6 @@ struct kvm_vmx {
u64 *pid_table;
};
-struct vcpu_vmx_tdx {
- struct kvm_vcpu vcpu;
- struct vcpu_vt vt;
-};
-
-static __always_inline struct vcpu_vt *to_vt(struct kvm_vcpu *vcpu)
-{
- return &(container_of(vcpu, struct vcpu_vmx_tdx, vcpu)->vt);
-}
-
-static __always_inline struct kvm_vcpu *vt_to_vcpu(struct vcpu_vt *vt)
-{
- return &(container_of(vt, struct vcpu_vmx_tdx, vt)->vcpu);
-}
-
-static __always_inline union vmx_exit_reason vmx_get_exit_reason(struct kvm_vcpu *vcpu)
-{
- return to_vt(vcpu)->exit_reason;
-}
-
-static __always_inline unsigned long vmx_get_exit_qual(struct kvm_vcpu *vcpu)
-{
- struct vcpu_vt *vt = to_vt(vcpu);
-
- if (!kvm_register_test_and_mark_available(vcpu, VCPU_REG_EXIT_INFO_1) &&
- !WARN_ON_ONCE(is_td_vcpu(vcpu)))
- vt->exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
-
- return vt->exit_qualification;
-}
-
-static __always_inline u32 vmx_get_intr_info(struct kvm_vcpu *vcpu)
-{
- struct vcpu_vt *vt = to_vt(vcpu);
-
- if (!kvm_register_test_and_mark_available(vcpu, VCPU_REG_EXIT_INFO_2) &&
- !WARN_ON_ONCE(is_td_vcpu(vcpu)))
- vt->exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
-
- return vt->exit_intr_info;
-}
-
void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu);
int allocate_vpid(void);
void free_vpid(int vpid);
--
2.55.0.887.g758fc8c411-goog
next prev parent reply other threads:[~2026-08-26 17:13 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-26 17:12 [PATCH v2 0/8] KVM: VMX: Harden against interpreting TDX vCPU as vcpu_vmx Sean Christopherson
2026-08-26 17:12 ` [PATCH v2 1/8] KVM: VMX: Move the shared "IRQs off" exit handler(s) to common code Sean Christopherson
2026-08-27 10:48 ` Xiaoyao Li
2026-08-27 19:34 ` Sean Christopherson
2026-08-26 17:12 ` [PATCH v2 2/8] KVM: VMX: Move the shared NMI handler/trampoline " Sean Christopherson
2026-08-27 11:20 ` Xiaoyao Li
2026-08-26 17:12 ` [PATCH v2 3/8] KVM: VMX: Disallowing using to_vmx() in common VT code Sean Christopherson
2026-08-27 2:32 ` Huang, Kai
2026-08-27 11:21 ` Xiaoyao Li
2026-08-26 17:12 ` [PATCH v2 4/8] KVM: VMX: Rename posted interrupt prefixes from "vmx" to "vt" Sean Christopherson
2026-08-27 2:35 ` Huang, Kai
2026-08-27 11:38 ` Xiaoyao Li
2026-08-27 14:17 ` Sean Christopherson
2026-08-26 17:12 ` [PATCH v2 5/8] KVM: VMX: Rename EPT violation handler prefix " Sean Christopherson
2026-08-27 2:36 ` Huang, Kai
2026-08-27 11:48 ` Xiaoyao Li
2026-08-26 17:12 ` [PATCH v2 6/8] KVM: VMX: Use dummy pseudo-overlay struct for to_vt() and vt_to_vcpu() Sean Christopherson
2026-08-27 11:58 ` Xiaoyao Li
2026-08-26 17:12 ` Sean Christopherson [this message]
2026-08-27 12:02 ` [PATCH v2 7/8] KVM: VMX: Move common VT getters/converters to common.h Xiaoyao Li
2026-08-26 17:12 ` [PATCH v2 8/8] KVM: VMX: Rename common exit info getters prefixes from "vmx" to "vt" Sean Christopherson
2026-08-27 12:09 ` Xiaoyao Li
2026-08-27 2:53 ` [PATCH v2 0/8] KVM: VMX: Harden against interpreting TDX vCPU as vcpu_vmx Huang, Kai
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=20260826171246.777729-8-seanjc@google.com \
--to=seanjc@google.com \
--cc=binbin.wu@linux.intel.com \
--cc=kai.huang@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rick.p.edgecombe@intel.com \
--cc=xiaoyao.li@intel.com \
--cc=yan.y.zhao@intel.com \
/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®