|
@@ -357,7 +357,8 @@ err:
|
|
|
* This function allocates part of contiguous memory on specific
|
|
|
* contiguous memory area.
|
|
|
*/
|
|
|
-struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align)
|
|
|
+struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align,
|
|
|
+ gfp_t gfp_mask)
|
|
|
{
|
|
|
unsigned long mask, offset;
|
|
|
unsigned long pfn = -1;
|
|
@@ -403,7 +404,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align)
|
|
|
pfn = cma->base_pfn + (bitmap_no << cma->order_per_bit);
|
|
|
mutex_lock(&cma_mutex);
|
|
|
ret = alloc_contig_range(pfn, pfn + count, MIGRATE_CMA,
|
|
|
- GFP_KERNEL);
|
|
|
+ gfp_mask);
|
|
|
mutex_unlock(&cma_mutex);
|
|
|
if (ret == 0) {
|
|
|
page = pfn_to_page(pfn);
|