[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 7/8] x86/mm: handle foreign mappings in p2m_entry_modify



>>> On 07.02.19 at 17:53, <roger.pau@xxxxxxxxxx> wrote:
> On Wed, Feb 06, 2019 at 09:59:30AM -0700, Jan Beulich wrote:
>> >>> On 30.01.19 at 11:36, <roger.pau@xxxxxxxxxx> wrote:
>> > --- a/xen/include/asm-x86/p2m.h
>> > +++ b/xen/include/asm-x86/p2m.h
>> > @@ -933,9 +933,12 @@ struct hvm_ioreq_server *p2m_get_ioreq_server(struct 
>> > domain *d,
>> >                                                unsigned int *flags);
>> >  
>> >  static inline void p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t nt,
>> > -                                    p2m_type_t ot, unsigned int level)
>> > +                                    p2m_type_t ot, mfn_t nfn, mfn_t ofn,
>> > +                                    unsigned int level)
>> >  {
>> > -    if ( level != 1 || nt == ot )
>> > +    struct page_info *pg;
>> > +
>> > +    if ( level != 1 || (nt == ot && mfn_eq(nfn, ofn)) )
>> >          return;
>> >  
>> >      switch ( nt )
>> > @@ -948,6 +951,17 @@ static inline void p2m_entry_modify(struct p2m_domain 
>> > *p2m, p2m_type_t nt,
>> >          p2m->ioreq.entry_count++;
>> >          break;
>> >  
>> > +    case p2m_map_foreign:
>> > +        pg = mfn_to_page(nfn);
>> > +
>> > +        if ( !pg || !page_get_owner_and_reference(pg) )
>> 
>> mfn_to_page() can't return NULL, can it? You may want to ASSERT()
>> beforehand that the MFN is not INVALID_MFN, though.
> 
> I've added ASSERT(mfn_valid(mfn)) and the same below. I think it's
> safer to use mfn_valid rather that only checking against INVALID_MFM.

Thanks, indeed I too did consider this afterwards.

Jan



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.