Loading include/linux/gfp.h +8 −1 Original line number Diff line number Diff line Loading @@ -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); Loading mm/filemap.c +5 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
include/linux/gfp.h +8 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
mm/filemap.c +5 −0 Original line number Diff line number Diff line Loading @@ -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); Loading