On 07/11/18 08:57, Paul Durrant wrote:
>>
>>>  static inline struct page_info *get_page_from_gfn(
>>> -    struct domain *d, unsigned long gfn, p2m_type_t *t, p2m_query_t q)
>>> +    struct domain *d, gfn_t gfn, p2m_type_t *t, p2m_query_t q)
>>>  {
>>>      struct page_info *page;
>>> +    mfn_t mfn;
>>>
>>>      if ( paging_mode_translate(d) )
>>> -        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t,
>> NULL, q);
>>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), gfn, t, NULL,
>> q);
>>>      /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
>>>      if ( t )
>>>          *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct;
>>> -    page = mfn_to_page(_mfn(gfn));
>>> -    return mfn_valid(_mfn(gfn)) && get_page(page, d) ? page : NULL;
>>> +
>>> +    mfn = _mfn(gfn_x(gfn));
>>> +    page = mfn_to_page(mfn);
>>> +    return mfn_valid(mfn) && get_page(page, d) ? page : NULL;
>> This looks like it would be cleaner by not splitting mfn out into a
>> separate variable.
>>
>> page = mfn_to_page(_mfn(gfn_x(gfn)));
>>
>> return mfn_valid(mfn) && get_page(page, d) ? page : NULL;
> ^^ er... how's that mfn_valid() going to work? You'd need 
> mfn_valid(page_to_mfn(pahge)), or somesuch.

Oops - I'm blind.  Sorry for the noise.

~Andrew

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

Reply via email to