|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] VMX: drop vmcs_revision_id
commit b13f2a901cc81f02f8d40be6b4e86251075abf96
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Mar 6 13:56:49 2025 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Mar 6 13:56:49 2025 +0100
VMX: drop vmcs_revision_id
It's effectively redundant with vmx_basic_msr. For the #define
replacement to work, struct vmcs_struct's respective field name also
needs to change: Drop the not really meaningful "vmcs_" prefix from it.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
xen/arch/x86/hvm/vmx/vmcs.c | 5 ++---
xen/arch/x86/hvm/vmx/vvmx.c | 12 ++++++------
xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 2 +-
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 20ab2d0f26..0622ef40db 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -177,7 +177,7 @@ static DEFINE_PER_CPU(paddr_t, current_vmcs);
static DEFINE_PER_CPU(struct list_head, active_vmcs_list);
DEFINE_PER_CPU(bool, vmxon);
-static u32 vmcs_revision_id __read_mostly;
+#define vmcs_revision_id (vmx_basic_msr & VMX_BASIC_REVISION_MASK)
u64 __read_mostly vmx_basic_msr;
static void __init vmx_display_features(void)
@@ -503,7 +503,6 @@ static int vmx_init_vmcs_config(bool bsp)
if ( !vmx_pin_based_exec_control )
{
/* First time through. */
- vmcs_revision_id = vmx_basic_msr_low &
VMX_BASIC_REVISION_MASK;
vmx_pin_based_exec_control = _vmx_pin_based_exec_control;
vmx_cpu_based_exec_control = _vmx_cpu_based_exec_control;
vmx_secondary_exec_control = _vmx_secondary_exec_control;
@@ -615,7 +614,7 @@ static paddr_t vmx_alloc_vmcs(void)
vmcs = __map_domain_page(pg);
clear_page(vmcs);
- vmcs->vmcs_revision_id = vmcs_revision_id;
+ vmcs->revision_id = vmcs_revision_id;
unmap_domain_page(vmcs);
return page_to_maddr(pg);
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index cf47d61b14..a3d7d1e4d7 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -1166,7 +1166,7 @@ static void nvmx_set_vmcs_pointer(struct vcpu *v, struct
vmcs_struct *vvmcs)
paddr_t vvmcs_maddr = v->arch.hvm.vmx.vmcs_shadow_maddr;
__vmpclear(vvmcs_maddr);
- vvmcs->vmcs_revision_id |= VMCS_RID_TYPE_MASK;
+ vvmcs->revision_id |= VMCS_RID_TYPE_MASK;
v->arch.hvm.vmx.secondary_exec_control |=
SECONDARY_EXEC_ENABLE_VMCS_SHADOWING;
__vmwrite(SECONDARY_VM_EXEC_CONTROL,
@@ -1181,7 +1181,7 @@ static void nvmx_clear_vmcs_pointer(struct vcpu *v,
struct vmcs_struct *vvmcs)
paddr_t vvmcs_maddr = v->arch.hvm.vmx.vmcs_shadow_maddr;
__vmpclear(vvmcs_maddr);
- vvmcs->vmcs_revision_id &= ~VMCS_RID_TYPE_MASK;
+ vvmcs->revision_id &= ~VMCS_RID_TYPE_MASK;
v->arch.hvm.vmx.secondary_exec_control &=
~SECONDARY_EXEC_ENABLE_VMCS_SHADOWING;
__vmwrite(SECONDARY_VM_EXEC_CONTROL,
@@ -1799,10 +1799,10 @@ static int nvmx_handle_vmptrld(struct cpu_user_regs
*regs)
{
struct vmcs_struct *vvmcs = vvmcx;
- if ( ((vvmcs->vmcs_revision_id ^ vmx_basic_msr) &
- VMX_BASIC_REVISION_MASK) ||
+ if ( ((vvmcs->revision_id ^ vmx_basic_msr) &
+ VMX_BASIC_REVISION_MASK) ||
(!cpu_has_vmx_vmcs_shadowing &&
- (vvmcs->vmcs_revision_id & ~VMX_BASIC_REVISION_MASK)) )
+ (vvmcs->revision_id & ~VMX_BASIC_REVISION_MASK)) )
{
hvm_unmap_guest_frame(vvmcx, 1);
vmfail(regs, VMX_INSN_VMPTRLD_INCORRECT_VMCS_ID);
@@ -2215,7 +2215,7 @@ int nvmx_msr_read_intercept(unsigned int msr, u64
*msr_content)
map_domain_page(_mfn(PFN_DOWN(v->arch.hvm.vmx.vmcs_pa)));
data = (host_data & (~0ul << 32)) |
- (vmcs->vmcs_revision_id & 0x7fffffff);
+ (vmcs->revision_id & 0x7fffffff);
unmap_domain_page(vmcs);
if ( !cpu_has_vmx_vmcs_shadowing )
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
index bfb2341011..d9d64764ef 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -17,7 +17,7 @@ int cf_check vmx_cpu_up(void);
void cf_check vmx_cpu_down(void);
struct vmcs_struct {
- u32 vmcs_revision_id;
+ uint32_t revision_id;
unsigned char data [0]; /* vmcs size is read from MSR */
};
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |