On 10.05.2022 04:27, Penny Zheng wrote: > @@ -2769,12 +2769,43 @@ int __init acquire_domstatic_pages(struct domain *d, > mfn_t smfn, > > return 0; > } > + > +/* > + * Acquire a page from reserved page list(resv_page_list), when populating > + * memory for static domain on runtime. > + */ > +mfn_t acquire_reserved_page(struct domain *d, unsigned int memflags) > +{ > + struct page_info *page; > + mfn_t smfn; > + > + /* Acquire a page from reserved page list(resv_page_list). */ > + page = page_list_remove_head(&d->resv_page_list); > + if ( unlikely(!page) ) > + return INVALID_MFN; > + > + smfn = page_to_mfn(page); > + > + if ( acquire_domstatic_pages(d, smfn, 1, memflags) ) > + { > + page_list_add_tail(page, &d->resv_page_list); > + return INVALID_MFN; > + } > + > + return smfn; > +} > #else > void free_staticmem_pages(struct page_info *pg, unsigned long nr_mfns, > bool need_scrub) > { > ASSERT_UNREACHABLE(); > } > + > +mfn_t acquire_reserved_page(struct domain *d, unsigned int memflags) > +{ > + ASSERT_UNREACHABLE(); > + return INVALID_MFN; > +} > #endif
Much like for the other stub function added in the earlier patch: If is_domain_using_staticmem() was compile time constant "false" when !CONFIG_STATIC_MEM, there would be no need for this one since the compiler would DCE the only call site.