The patch titled Subject: mm/page_alloc.c:__alloc_pages_nodemask(): don't alter arg gfp_mask has been removed from the -mm tree. Its filename was mm-page_allocc-__alloc_pages_nodemask-dont-alter-arg-gfp_mask.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: mm/page_alloc.c:__alloc_pages_nodemask(): don't alter arg gfp_mask __alloc_pages_nodemask() strips __GFP_IO when retrying the page allocation. But it does this by altering the function-wide variable gfp_mask. This will cause subsequent allocation attempts to inadvertently use the modified gfp_mask. Also, pass the correct mask (the mask we actually used) into trace_mm_page_alloc(). Cc: Ming Lei <ming.lei@xxxxxxxxxxxxx> Cc: Mel Gorman <mel@xxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/page_alloc.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff -puN mm/page_alloc.c~mm-page_allocc-__alloc_pages_nodemask-dont-alter-arg-gfp_mask mm/page_alloc.c --- a/mm/page_alloc.c~mm-page_allocc-__alloc_pages_nodemask-dont-alter-arg-gfp_mask +++ a/mm/page_alloc.c @@ -2865,6 +2865,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, u unsigned int cpuset_mems_cookie; int alloc_flags = ALLOC_WMARK_LOW|ALLOC_CPUSET|ALLOC_FAIR; int classzone_idx; + gfp_t alloc_mask; /* The gfp_t that was actually used for allocation */ gfp_mask &= gfp_allowed_mask; @@ -2898,22 +2899,24 @@ retry_cpuset: classzone_idx = zonelist_zone_idx(preferred_zoneref); /* First allocation attempt */ - page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order, - zonelist, high_zoneidx, alloc_flags, - preferred_zone, classzone_idx, migratetype); + alloc_mask = gfp_mask|__GFP_HARDWALL; + page = get_page_from_freelist(alloc_mask, nodemask, order, zonelist, + high_zoneidx, alloc_flags, preferred_zone, + classzone_idx, migratetype); if (unlikely(!page)) { /* * Runtime PM, block IO and its error handling path * can deadlock because I/O on the device might not * complete. */ - gfp_mask = memalloc_noio_flags(gfp_mask); - page = __alloc_pages_slowpath(gfp_mask, order, + alloc_mask = memalloc_noio_flags(gfp_mask); + + page = __alloc_pages_slowpath(alloc_mask, order, zonelist, high_zoneidx, nodemask, preferred_zone, classzone_idx, migratetype); } - trace_mm_page_alloc(page, order, gfp_mask, migratetype); + trace_mm_page_alloc(page, order, alloc_mask, migratetype); out: /* _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch arch-alpha-kernel-systblss-remove-debug-check.patch i-need-old-gcc.patch input-route-kbd-leds-through-the-generic-leds-layer.patch mm.patch fs-shrinker-always-scan-at-least-one-object-of-each-type-fix.patch mm-vmscan-fix-the-page-state-calculation-in-too_many_isolated.patch x86-add-pmd_-for-thp-fix.patch sparc-add-pmd_-for-thp-fix.patch zram-rework-reset-and-destroy-path-fix.patch task_mmu-add-user-space-support-for-resetting-mm-hiwater_rss-peak-rss.patch powerpc-add-running_clock-for-powerpc-to-prevent-spurious-softlockup-warnings-checkpatch-fixes.patch kernelh-remove-ancient-__function__-hack-fix.patch lib-bitmap-update-bitmap_onto-to-unsigned-checkpatch-fixes.patch lib-bitmap-change-parameters-of-bitmap_fold-to-unsigned-fix.patch hexdump-makes-it-return-amount-of-bytes-placed-in-buffer-fix.patch mm-slab-convert-cache-name-allocations-to-kstrdup_const-fix.patch module_device_table-fix-some-callsites.patch kasan-enable-instrumentation-of-global-variables-fix.patch kasan-enable-instrumentation-of-global-variables-fix-2-fix.patch rtc-rk808-fix-the-rtc-time-reading-issue-fix.patch fs-befs-linuxvfsc-remove-unnecessary-casting-fix.patch samples-seccomp-improve-label-helper-fix.patch linux-next.patch linux-next-rejects.patch mm-fix-xip-fault-vs-truncate-race-fix.patch mm-fix-xip-fault-vs-truncate-race-fix-fix.patch mm-allow-page-fault-handlers-to-perform-the-cow-fix.patch mm-allow-page-fault-handlers-to-perform-the-cow-fix-fix-3.patch mm-allow-page-fault-handlers-to-perform-the-cow-fix-fix.patch daxext2-replace-the-xip-page-fault-handler-with-the-dax-page-fault-handler-fix.patch daxext2-replace-the-xip-page-fault-handler-with-the-dax-page-fault-handler-fix-2.patch daxext2-replace-the-xip-page-fault-handler-with-the-dax-page-fault-handler-fix-3.patch dax-add-dax_zero_page_range-fix.patch ext4-add-dax-functionality-fix.patch ocfs2-add-functions-to-add-and-remove-inode-in-orphan-dir-fix.patch ocfs2-implement-ocfs2_direct_io_write-fix.patch lib-kconfig-fix-up-have_arch_bitreverse-help-text.patch do_shared_fault-check-that-mmap_sem-is-held.patch journal_add_journal_head-debug.patch journal_add_journal_head-debug-fix.patch kernel-forkc-export-kernel_thread-to-modules.patch mutex-subsystem-synchro-test-module.patch slab-leaks3-default-y.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html