On 04/12/2019 09:43, Andrew Cooper wrote: > The type name is poor because the type is also used for the IDT vectoring > field, not just for the event injection field. Rename it to intinfo_t which > is how the APM refers to the data. > > Rearrange the union to drop the .fields infix, and rename bytes to the more > common raw. > > While adjusting all call sites, fix up style issues and make use of structure > assignments where applicable. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> > --- > CC: Jan Beulich <jbeul...@suse.com> > CC: Wei Liu <w...@xen.org> > CC: Roger Pau Monné <roger....@citrix.com> > --- > xen/arch/x86/hvm/svm/intr.c | 32 ++++++++---------- > xen/arch/x86/hvm/svm/nestedsvm.c | 28 +++++++--------- > xen/arch/x86/hvm/svm/svm.c | 68 > ++++++++++++++++++-------------------- > xen/arch/x86/hvm/svm/svmdebug.c | 12 +++---- > xen/include/asm-x86/hvm/svm/vmcb.h | 22 ++++++------ > 5 files changed, 75 insertions(+), 87 deletions(-) > > diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c > index ff755165cd..4eede5cc23 100644 > --- a/xen/arch/x86/hvm/svm/intr.c > +++ b/xen/arch/x86/hvm/svm/intr.c > @@ -43,15 +43,13 @@ static void svm_inject_nmi(struct vcpu *v) > { > struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb; > u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb); > - eventinj_t event; > > - event.bytes = 0; > - event.fields.v = 1; > - event.fields.type = X86_EVENTTYPE_NMI; > - event.fields.vector = 2; > - > - ASSERT(vmcb->eventinj.fields.v == 0); > - vmcb->eventinj = event; > + ASSERT(!vmcb->eventinj.v); > + vmcb->eventinj = (intinfo_t){ > + .vector = 2, > + .type = X86_EVENTTYPE_NMI, > + .v = true, > + };
And in a surprise move (not really), CentOS 6 isn't happy with this. I'll revert back to the previous way of filling in eventinj (until we can actually decide on a newer tools baseline). ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel