On Wed, 2020-02-05 at 11:02 +0100, Jan Beulich wrote: > > + /* Pages from the boot allocator need to pass through init_heap_pages() */ > > + if ( unlikely(!pg->count_info) ) > > ... while I think this check may be fine here, no similar one > can be used in free_domheap_pages(), yet pages getting handed > there isn't less likely than ones getting handed to > free_xenheap_pages() (if we already fear mismatch). Do we care about that? ICBW but I don't think I've seen a case where boot-allocated pages get handed to free_domheap_pages() later. I've only seen them handed to free_xenheap_pages(). These are pages which are mapped to Xen, not domheap pages. You are already expected *not* to conflate free_xenheap_pages() and free_domheap_pages(). I think it should be OK to declare that freeing boot-allocated pages with free_xenheap_pages() is permitted, but freeing them with free_domheap_pages() isn't. (Note my straw man patch didn't fix the CONFIG_SEPARATE_XENHEAP case and doesn't trivially port to that version of free_xenheap_pages() because the PGC_xen_heap flag isn't used there. But it's fixable relatively easily.