|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/svm: Cleanup virt_ext_t type
commit dc5813a9c46317f2fde7df2f3899a6237e5fe066
Author: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
AuthorDate: Mon Sep 28 15:02:46 2026 +0100
Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Wed Nov 4 18:11:35 2026 +0000
x86/svm: Cleanup virt_ext_t type
Rearrange the union to drop the .fields infix, rename bytes to the more
common raw, adjust types where appropriate, and simplify some names.
Adjust the users accordingly.
No functional change intended.
Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
Reviewed-by: Jason Andryuk <jason.andryuk@xxxxxxx>
---
xen/arch/x86/hvm/svm/nestedsvm.c | 12 +++++-------
xen/arch/x86/hvm/svm/svm.c | 2 +-
xen/arch/x86/hvm/svm/vmcb.c | 2 +-
xen/arch/x86/hvm/svm/vmcb.h | 8 ++++----
4 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 61c401240d..a21d6f24a7 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -442,8 +442,7 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct
cpu_user_regs *regs)
/* Pending Interrupts */
n2vmcb->event_inj = ns_vmcb->event_inj;
- n2vmcb->virt_ext.bytes =
- n1vmcb->virt_ext.bytes | ns_vmcb->virt_ext.bytes;
+ n2vmcb->virt_ext.raw = n1vmcb->virt_ext.raw | ns_vmcb->virt_ext.raw;
/*
* NextRIP is consumed on VMRUN as the return address pushed on the
@@ -1536,10 +1535,9 @@ void svm_nested_features_on_efer_update(struct vcpu *v)
*/
if ( nsvm_efer_svm_enabled(v) )
{
- if ( !vmcb->virt_ext.fields.vloadsave_enable &&
- cpu_has_svm_vloadsave )
+ if ( !vmcb->virt_ext.vloadsave_en && cpu_has_svm_vloadsave )
{
- vmcb->virt_ext.fields.vloadsave_enable = 1;
+ vmcb->virt_ext.vloadsave_en = true;
general2_intercepts = vmcb_get_general2_intercepts(vmcb);
general2_intercepts &= ~(GENERAL2_INTERCEPT_VMLOAD |
GENERAL2_INTERCEPT_VMSAVE);
@@ -1561,9 +1559,9 @@ void svm_nested_features_on_efer_update(struct vcpu *v)
}
else
{
- if ( vmcb->virt_ext.fields.vloadsave_enable )
+ if ( vmcb->virt_ext.vloadsave_en )
{
- vmcb->virt_ext.fields.vloadsave_enable = 0;
+ vmcb->virt_ext.vloadsave_en = false;
general2_intercepts = vmcb_get_general2_intercepts(vmcb);
general2_intercepts |= (GENERAL2_INTERCEPT_VMLOAD |
GENERAL2_INTERCEPT_VMSAVE);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 57779806bf..666bcd3eb4 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -1938,7 +1938,7 @@ static int cf_check svm_msr_write_intercept(
vmcb_set_debugctlmsr(vmcb, msr_content);
if ( !msr_content || !cpu_has_svm_lbrv )
break;
- vmcb->virt_ext.fields.lbr_enable = 1;
+ vmcb->virt_ext.lbr_en = true;
svm_disable_intercept_for_msr(v, MSR_IA32_DEBUGCTLMSR);
svm_disable_intercept_for_msr(v, MSR_IA32_LASTBRANCHFROMIP);
svm_disable_intercept_for_msr(v, MSR_IA32_LASTBRANCHTOIP);
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index a6f09672a7..33c85ea3bf 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -291,7 +291,7 @@ void svm_vmcb_dump(const char *from, const struct
vmcb_struct *vmcb)
vmcb_get_sev(vmcb) ? " SEV" : "",
vmcb_get_sev_es(vmcb) ? " SEV_ES" : "");
printk("virtual vmload/vmsave = %d, virt_ext = %#"PRIx64"\n",
- vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes);
+ vmcb->virt_ext.vloadsave_en, vmcb->virt_ext.raw);
printk("cpl = %d efer = %#"PRIx64" star = %#"PRIx64" lstar = %#"PRIx64"\n",
vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->lstar);
printk("CR0 = 0x%016"PRIx64" CR2 = 0x%016"PRIx64"\n",
diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 131815a712..8b351679fa 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -354,12 +354,12 @@ typedef union
typedef union
{
- u64 bytes;
struct
{
- u64 lbr_enable:1;
- u64 vloadsave_enable:1;
- } fields;
+ bool lbr_en:1;
+ bool vloadsave_en:1;
+ };
+ uint64_t raw;
} virt_ext_t;
typedef union
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |