On Thu, Mar 14, 2019 at 09:42:49AM +0000, Vlastimil Babka wrote: > @@ -4752,7 +4752,7 @@ static void *make_alloc_exact(unsigned long addr, unsigned int order, > /** > * alloc_pages_exact - allocate an exact number physically-contiguous pages. > * @size: the number of bytes to allocate > - * @gfp_mask: GFP flags for the allocation > + * @gfp_mask: GFP flags for the allocation, must not contain __GFP_COMP > * > * This function is similar to alloc_pages(), except that it allocates the > * minimum number of pages to satisfy the request. alloc_pages() can only > @@ -4768,6 +4768,10 @@ void *alloc_pages_exact(size_t size, gfp_t gfp_mask) > unsigned long addr; > > addr = __get_free_pages(gfp_mask, order); > + > + if (WARN_ON_ONCE(gfp_mask & __GFP_COMP)) > + return NULL; > + Shouldn't it be before __get_free_pages() call? :P > return make_alloc_exact(addr, order, size); > } > EXPORT_SYMBOL(alloc_pages_exact); -- Kirill A. Shutemov