|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/4] x86/hvm: Implement hvmemul_write() using real mappings
> -----Original Message-----
> From: Andrew Cooper
> Sent: 12 September 2017 08:10
> To: Alexandru Isaila <aisaila@xxxxxxxxxxxxxxx>; xen-devel@xxxxxxxxxxxxx
> Cc: Tim (Xen.org) <tim@xxxxxxx>; George Dunlap
> <George.Dunlap@xxxxxxxxxx>; jbeulich@xxxxxxxx; Ian Jackson
> <Ian.Jackson@xxxxxxxxxx>; konrad.wilk@xxxxxxxxxx; sstabellini@xxxxxxxxxx;
> Wei Liu <wei.liu2@xxxxxxxxxx>; Paul Durrant <Paul.Durrant@xxxxxxxxxx>;
> boris.ostrovsky@xxxxxxxxxx; suravee.suthikulpanit@xxxxxxx;
> jun.nakajima@xxxxxxxxx; Kevin Tian <kevin.tian@xxxxxxxxx>; Razvan
> Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>; Mihai Donțu
> <mdontu@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH v2 4/4] x86/hvm: Implement hvmemul_write() using
> real mappings
>
> On 08/09/17 17:05, Alexandru Isaila wrote:
> > + } while ( frame < final );
> > +
> > + /* Entire access within a single frame? */
> > + if ( first == final )
> > + mapping = map_domain_page(hvmemul_ctxt->mfn[0]) + (linear &
> ~PAGE_MASK);
> > + /* Multiple frames? Need to vmap(). */
> > + else if ( (mapping = vmap(hvmemul_ctxt->mfn,
> > + mfn - hvmemul_ctxt->mfn)) == NULL )
> > + goto unhandleable;
> > +
> > +#ifndef NDEBUG /* Poision unused mfn[]s with INVALID_MFN. */
> > + while ( mfn < hvmemul_ctxt->mfn + ARRAY_SIZE(hvmemul_ctxt->mfn)
> )
> > + {
> > + ASSERT(mfn_x(*mfn) == 0);
> > + *mfn++ = INVALID_MFN;
> > + }
> > +#endif
> > +
> > + return mapping;
>
> /sigh - its sad what you notice when looking over your own code somewhat
> later...
>
> the + (linear & ~PAGE_MASK) needs removing from the
> map_domain_page()
> call, and adding to this return statement, because it also needs to
> happen for the vmap() case.
Should vmap call through to map_domain_page() in the case of a single page I
wonder?
Paul
>
> ~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |