[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 9/9] viridian: introduce struct viridian_page
>>> On 31.10.18 at 13:43, <paul.durrant@xxxxxxxxxx> wrote: > The 'vp_assist' page is currently an example of a guest page which needs to > be kept mapped throughout the life-time of a guest, but there are other > such examples in the specifiction [1]. This patch therefore introduces a > generic 'viridian_page' type and converts the current vp_assist/apic_assist > related code to use it. Subsequent patches implementing other enlightments > can then also make use of it. This sounds generic (as in "not synic specific), yet ... > --- a/xen/arch/x86/hvm/viridian/synic.c > +++ b/xen/arch/x86/hvm/viridian/synic.c > @@ -37,14 +37,13 @@ static void dump_vp_assist(const struct vcpu *v) > v, (unsigned long)va->fields.pfn); > } > > -static void initialize_vp_assist(struct vcpu *v) > +static void initialize_guest_page(struct vcpu *v, struct viridian_page *vp) > { > struct domain *d = v->domain; > - unsigned long gmfn = v->arch.hvm.viridian.vp_assist.msr.fields.pfn; > + unsigned long gmfn = vp->msr.fields.pfn; > struct page_info *page = get_page_from_gfn(d, gmfn, NULL, P2M_ALLOC); > - HV_VP_ASSIST_PAGE *ptr; > > - ASSERT(!v->arch.hvm.viridian.vp_assist.ptr); > + ASSERT(!vp->ptr); > > if ( !page ) > goto fail; ... you retain the implementation here, when it would now perhaps more logically live in viridian.c (again). Is this intentional? > @@ -221,9 +218,9 @@ void viridian_synic_load_vcpu_ctxt( > { > v->arch.hvm.viridian.vp_assist.msr.raw = ctxt->vp_assist_msr; > if ( v->arch.hvm.viridian.vp_assist.msr.fields.enabled ) > - initialize_vp_assist(v); > + initialize_guest_page(v, &v->arch.hvm.viridian.vp_assist); > > - v->arch.hvm.viridian.vp_assist.pending = !!ctxt->vp_assist_pending; > + v->arch.hvm.viridian.apic_assist_pending = !!ctxt->apic_assist_pending; No need for !! anymore with ... > --- a/xen/include/asm-x86/hvm/viridian.h > +++ b/xen/include/asm-x86/hvm/viridian.h > @@ -88,13 +88,16 @@ union viridian_page_msr > } fields; > }; > > +struct viridian_page > +{ > + union viridian_page_msr msr; > + void *ptr; > +}; > + > struct viridian_vcpu > { > - struct { > - union viridian_page_msr msr; > - void *ptr; > - bool pending; > - } vp_assist; > + struct viridian_page vp_assist; > + bool apic_assist_pending; ... this being (and having been) bool. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |