xen/arch/x86/cpu/mcheck/vmce.c | 2 +- xen/arch/x86/cpu/vpmu.c | 2 +- xen/arch/x86/domain.c | 2 +- xen/arch/x86/domctl.c | 2 +- xen/arch/x86/hvm/irq.c | 8 ++++---- xen/arch/x86/hvm/vioapic.c | 2 +- xen/arch/x86/hvm/vlapic.c | 2 +- xen/arch/x86/include/asm/domain.h | 3 --- xen/arch/x86/nmi.c | 2 +- xen/arch/x86/pv/callback.c | 2 +- xen/arch/x86/pv/traps.c | 2 +- xen/arch/x86/x86_64/asm-offsets.c | 4 ++-- 12 files changed, 15 insertions(+), 18 deletions(-)
These obscure the data layout in v->arch, and prevent using the names for
other variables.
Expand the defines in place. No functional change.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Roger Pau Monné <roger@xenproject.org>
CC: Teddy Astie <teddy.astie@vates.tech>
The {nmi,mce}_state defines are rude too, but that involves more unpicking
than I have time for right now.
---
xen/arch/x86/cpu/mcheck/vmce.c | 2 +-
xen/arch/x86/cpu/vpmu.c | 2 +-
xen/arch/x86/domain.c | 2 +-
xen/arch/x86/domctl.c | 2 +-
xen/arch/x86/hvm/irq.c | 8 ++++----
xen/arch/x86/hvm/vioapic.c | 2 +-
xen/arch/x86/hvm/vlapic.c | 2 +-
xen/arch/x86/include/asm/domain.h | 3 ---
xen/arch/x86/nmi.c | 2 +-
xen/arch/x86/pv/callback.c | 2 +-
xen/arch/x86/pv/traps.c | 2 +-
xen/arch/x86/x86_64/asm-offsets.c | 4 ++--
12 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506ac8..2b7ec6737d20 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -410,7 +410,7 @@ int inject_vmce(struct domain *d, int vcpu)
if ( (is_hvm_domain(d) ||
pv_trap_callback_registered(v, X86_EXC_MC)) &&
- !test_and_set_bool(v->arch.mce_pending) )
+ !test_and_set_bool(v->arch.mce_state.pending) )
{
mce_printk(MCE_VERBOSE, "MCE: inject vMCE to %pv\n", v);
vcpu_kick(v);
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index e0f7edded3d7..5cc854d71ce3 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -316,7 +316,7 @@ void vpmu_do_interrupt(void)
vlapic_set_irq(vlapic, vlapic_lvtpc & APIC_VECTOR_MASK, 0);
break;
case APIC_DM_NMI:
- sampling->arch.nmi_pending = true;
+ sampling->arch.nmi_state.pending = true;
break;
}
#endif
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 368e4deff375..f8e31cdc5791 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1684,7 +1684,7 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
if ( !guest_handle_is_null(arg) )
return -EINVAL;
- if ( !test_and_set_bool(v->arch.nmi_pending) )
+ if ( !test_and_set_bool(v->arch.nmi_state.pending) )
vcpu_kick(v);
break;
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 1e0051070211..12c14bb3f514 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -584,7 +584,7 @@ long arch_do_domctl(
{
case XEN_DOMCTL_SENDTRIGGER_NMI:
ret = 0;
- if ( !test_and_set_bool(v->arch.nmi_pending) )
+ if ( !test_and_set_bool(v->arch.nmi_state.pending) )
vcpu_kick(v);
break;
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 5f643611130f..18f05b6247fd 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -522,10 +522,10 @@ struct hvm_intack hvm_vcpu_has_pending_irq(struct vcpu *v)
*/
hvm_sync_pir_to_irr(v);
- if ( unlikely(v->arch.nmi_pending) )
+ if ( unlikely(v->arch.nmi_state.pending) )
return hvm_intack_nmi;
- if ( unlikely(v->arch.mce_pending) )
+ if ( unlikely(v->arch.mce_state.pending) )
return hvm_intack_mce;
if ( (plat->irq->callback_via_type == HVMIRQ_callback_vector)
@@ -550,11 +550,11 @@ struct hvm_intack hvm_vcpu_ack_pending_irq(
switch ( intack.source )
{
case hvm_intsrc_nmi:
- if ( !test_and_clear_bool(v->arch.nmi_pending) )
+ if ( !test_and_clear_bool(v->arch.nmi_state.pending) )
intack = hvm_intack_none;
break;
case hvm_intsrc_mce:
- if ( !test_and_clear_bool(v->arch.mce_pending) )
+ if ( !test_and_clear_bool(v->arch.mce_state.pending) )
intack = hvm_intack_none;
break;
case hvm_intsrc_pic:
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index b633f1523250..995fae7b3c0f 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -475,7 +475,7 @@ static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
for_each_vcpu ( d, v )
if ( vlapic_match_dest(vcpu_vlapic(v), NULL,
0, dest, dest_mode) &&
- !test_and_set_bool(v->arch.nmi_pending) )
+ !test_and_set_bool(v->arch.nmi_state.pending) )
vcpu_kick(v);
break;
}
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 0d7231c45b68..6698779e227c 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -356,7 +356,7 @@ static void vlapic_accept_irq(struct vcpu *v, uint32_t icr_low)
break;
case APIC_DM_NMI:
- if ( !test_and_set_bool(v->arch.nmi_pending) )
+ if ( !test_and_set_bool(v->arch.nmi_state.pending) )
{
bool wake = false;
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 2d0a91541034..634d0710bfc2 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -47,9 +47,6 @@ unsigned int arch_domain_struct_memflags(void);
#define nmi_state async_exception_state(VCPU_TRAP_NMI)
#define mce_state async_exception_state(VCPU_TRAP_MCE)
-#define nmi_pending nmi_state.pending
-#define mce_pending mce_state.pending
-
struct trap_bounce {
uint32_t error_code;
uint8_t flags; /* TBF_ */
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index b3d18270b13a..3a94471037bd 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -522,7 +522,7 @@ static void cf_check do_nmi_stats(unsigned char key)
if ( !hardware_domain || !(v = domain_vcpu(hardware_domain, 0)) )
return;
- pend = v->arch.nmi_pending;
+ pend = v->arch.nmi_state.pending;
mask = v->arch.async_exception_mask & (1 << VCPU_TRAP_NMI);
if ( pend || mask )
printk("%pv: NMI%s%s\n",
diff --git a/xen/arch/x86/pv/callback.c b/xen/arch/x86/pv/callback.c
index 38b819b56626..29370a68ce15 100644
--- a/xen/arch/x86/pv/callback.c
+++ b/xen/arch/x86/pv/callback.c
@@ -35,7 +35,7 @@ static int register_guest_nmi_callback(unsigned long address)
* now.
*/
if ( curr->vcpu_id == 0 && arch_get_nmi_reason(d) != 0 )
- curr->arch.nmi_pending = true;
+ curr->arch.nmi_state.pending = true;
return 0;
}
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index 21a1f4b7174a..b817b5b29604 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -199,7 +199,7 @@ int pv_raise_nmi(struct vcpu *v)
if ( cmpxchgptr(v_ptr, NULL, v) )
return -EBUSY;
- if ( !test_and_set_bool(v->arch.nmi_pending) )
+ if ( !test_and_set_bool(v->arch.nmi_state.pending) )
{
/* Not safe to wake up a vcpu here */
raise_softirq(NMI_SOFTIRQ);
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 3bc0f06c2ead..ce5e7aae16cd 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -110,9 +110,9 @@ void __dummy__(void)
OFFSET(VCPU_guest_context_flags, struct vcpu, arch.pv.vgc_flags);
OFFSET(VCPU_cr3, struct vcpu, arch.cr3);
OFFSET(VCPU_arch_msrs, struct vcpu, arch.msrs);
- OFFSET(VCPU_nmi_pending, struct vcpu, arch.nmi_pending);
- OFFSET(VCPU_mce_pending, struct vcpu, arch.mce_pending);
+ OFFSET(VCPU_nmi_pending, struct vcpu, arch.nmi_state.pending);
OFFSET(VCPU_nmi_old_mask, struct vcpu, arch.nmi_state.old_mask);
+ OFFSET(VCPU_mce_pending, struct vcpu, arch.mce_state.pending);
OFFSET(VCPU_mce_old_mask, struct vcpu, arch.mce_state.old_mask);
OFFSET(VCPU_async_exception_mask, struct vcpu, arch.async_exception_mask);
DEFINE(VCPU_TRAP_NMI, VCPU_TRAP_NMI);
--
2.39.5
On 02.11.2026 18:40, Andrew Cooper wrote: > These obscure the data layout in v->arch, and prevent using the names for > other variables. > > Expand the defines in place. No functional change. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com>
© 2016 - 2026 Red Hat, Inc.