On Tue, Apr 13, 2021 at 02:03:52PM +0200, Jan Beulich wrote: > On 13.04.2021 12:18, Roger Pau Monné wrote: > > On Tue, Apr 13, 2021 at 11:24:09AM +0200, Jan Beulich wrote: > >> On 12.04.2021 17:31, Roger Pau Monné wrote: > >>> On Mon, Apr 12, 2021 at 12:40:48PM +0200, Jan Beulich wrote: > >>>> + { > >>>> + const struct page_info *pg = mfn_to_page(mfn); > >>>> + > >>>> + if ( !page_get_owner(pg) && (pg->count_info & PGC_extra) ) > >>>> + { > >>>> + ASSERT(type == p2m_mmio_direct); > >>>> + return 0; > >>> > >>> Are there any other pages that could pass this check? I don't think > >>> so, but wanted to assert. > >> > >> "Normal" extra pages have an owner, so no, there aren't any others. > >> If and when any appear, this may need further customizing, albeit > >> generally I'd hope further pages matching this pattern would also > >> want similar treatment. > > > > I wonder whether we want to add an assert here to make sure only the > > APIC access page receives this special handling by the shadow code, > > but maybe that's a bit too much? > > I think so, yes: It would require either a separate function or > making the variable global. Both feel like a layering violation.
Right, with the INVALID_MFN change and the shadow mfn_valid style adjustment: Reviewed-by: Roger Pau Monné <roger....@citrix.com> Thanks, Roger.