These patches came out of the "[RFC] mmap(MAP_CONTIG)" discussions at: http://lkml.kernel.org/r/21f1ec96-2822-1189-1c95-79a2bb491571@xxxxxxxxxx One suggestion in that thread was to create a friendlier interface that could be used by drivers and others outside core mm code to allocate a contiguous set of pages. The alloc_contig_range() interface is used for this purpose today by CMA and gigantic page allocation. However, this is not a general purpose interface. So, wrap alloc_contig_range() in the more general interface: struct page *find_alloc_contig_pages(unsigned int order, gfp_t gfp, int nid, nodemask_t *nodemask) This interface is essentially the same functionality provided by the hugetlb specific routine alloc_gigantic_page(). After creating the interface, change alloc_gigantic_page() to call find_alloc_contig_pages() and delete all the supporting code in hugetlb.c. A new use case for allocating contiguous memory has been identified in Intel(R) Resource Director Technology Cache Pseudo-Locking. Mike Kravetz (3): mm: change type of free_contig_range(nr_pages) to unsigned long mm: add find_alloc_contig_pages() interface mm/hugetlb: use find_alloc_contig_pages() to allocate gigantic pages include/linux/gfp.h | 14 +++++++- mm/cma.c | 2 +- mm/hugetlb.c | 87 ++++-------------------------------------------- mm/page_alloc.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 110 insertions(+), 88 deletions(-) -- 2.13.6 -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html