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