diff options
author | Mark Brown <broonie@kernel.org> | 2019-06-26 14:39:34 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-06-26 14:39:34 +0300 |
commit | 53c8b29abe42e5601cfa0ea5962532f0cfdec8a0 (patch) | |
tree | cad53f42ce7a03c39a984bcdbcc42cd47f1af6f9 /mm/z3fold.c | |
parent | e3303268f9cfa4eb7c2217df471417d4327109fd (diff) | |
parent | 4b972a01a7da614b4796475f933094751a295a2f (diff) | |
download | linux-53c8b29abe42e5601cfa0ea5962532f0cfdec8a0.tar.xz |
Merge tag 'v5.2-rc6' into asoc-5.3
Linux 5.2-rc6
Diffstat (limited to 'mm/z3fold.c')
-rw-r--r-- | mm/z3fold.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/mm/z3fold.c b/mm/z3fold.c index 1ffecd6333e5..985732c8b025 100644 --- a/mm/z3fold.c +++ b/mm/z3fold.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-only /* * z3fold.c * @@ -189,10 +190,11 @@ static int size_to_chunks(size_t size) static void compact_page_work(struct work_struct *w); -static inline struct z3fold_buddy_slots *alloc_slots(struct z3fold_pool *pool) +static inline struct z3fold_buddy_slots *alloc_slots(struct z3fold_pool *pool, + gfp_t gfp) { struct z3fold_buddy_slots *slots = kmem_cache_alloc(pool->c_handle, - GFP_KERNEL); + gfp); if (slots) { memset(slots->slot, 0, sizeof(slots->slot)); @@ -294,10 +296,10 @@ static void z3fold_unregister_migration(struct z3fold_pool *pool) /* Initializes the z3fold header of a newly allocated z3fold page */ static struct z3fold_header *init_z3fold_page(struct page *page, - struct z3fold_pool *pool) + struct z3fold_pool *pool, gfp_t gfp) { struct z3fold_header *zhdr = page_address(page); - struct z3fold_buddy_slots *slots = alloc_slots(pool); + struct z3fold_buddy_slots *slots = alloc_slots(pool, gfp); if (!slots) return NULL; @@ -911,7 +913,7 @@ retry: if (!page) return -ENOMEM; - zhdr = init_z3fold_page(page, pool); + zhdr = init_z3fold_page(page, pool, gfp); if (!zhdr) { __free_page(page); return -ENOMEM; |