Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 485e54c3 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mm/filemap: Allow filemap_fault Movable allocations from CMA region"

parents e82e5f9d 6ec8d413
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -407,7 +407,14 @@ static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
static inline enum zone_type gfp_zone(gfp_t flags)
{
	enum zone_type z;
	int bit = (__force int) (flags & GFP_ZONEMASK);
	int bit;

	if (!IS_ENABLED(CONFIG_HIGHMEM)) {
		if ((flags & __GFP_MOVABLE) && !(flags & __GFP_CMA))
			flags &= ~__GFP_HIGHMEM;
	}

	bit = (__force int) (flags & GFP_ZONEMASK);

	z = (GFP_ZONE_TABLE >> (bit * GFP_ZONES_SHIFT)) &
					 ((1 << GFP_ZONES_SHIFT) - 1);
+5 −0
Original line number Diff line number Diff line
@@ -2409,6 +2409,11 @@ int filemap_fault(struct vm_fault *vmf)
		do_async_mmap_readahead(vmf->vma, ra, file, page, offset);
	} else if (!page) {
		/* No page in the page cache at all */
		struct address_space *mapping = file->f_mapping;

		if (mapping && (mapping->gfp_mask & __GFP_MOVABLE))
			mapping->gfp_mask |= __GFP_CMA;

		do_sync_mmap_readahead(vmf->vma, ra, file, offset);
		count_vm_event(PGMAJFAULT);
		count_memcg_event_mm(vmf->vma->vm_mm, PGMAJFAULT);