From: Jan Beulich Date: Fri, 23 Nov 2018 11:08:09 +0000 (+0100) Subject: mm: disallow MEMF_no_refcount to be passed for domain-owned allocations X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d13e07df79a1ee209dcbe02c52b59ced6210b826;p=people%2Froyger%2Fxen.git mm: disallow MEMF_no_refcount to be passed for domain-owned allocations When such pages get assigned to domains (and hence their ->tot_pages not incremented accordingly) we would otherwise also need to suppress decrementing the count when freeing those pages. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 08ee8cfbb9..4a2cbda1db 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -2303,6 +2303,11 @@ struct page_info *alloc_domheap_pages( if ( memflags & MEMF_no_owner ) memflags |= MEMF_no_refcount; + else if ( (memflags & MEMF_no_refcount) && d ) + { + ASSERT(!(memflags & MEMF_no_refcount)); + return NULL; + } if ( dma_bitsize && ((dma_zone = bits_to_zone(dma_bitsize)) < zone_hi) ) pg = alloc_heap_pages(dma_zone + 1, zone_hi, order, memflags, d);