[PATCH] mm/page_alloc: cleanup flag vars in alloc_pages_bulk_noprof()

Brendan Jackman posted 1 patch 1 day ago
mm/page_alloc.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
[PATCH] mm/page_alloc: cleanup flag vars in alloc_pages_bulk_noprof()
Posted by Brendan Jackman 1 day ago
These two variables are redundant, squash them to align
alloc_pages_bulk_noprof() with the style used in
alloc_frozen_pages_nolock_noprof().

Signed-off-by: Brendan Jackman <jackmanb@google.com>
---
 mm/page_alloc.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 111b54df8a3cb..5e280ded6e7ac 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5051,7 +5051,6 @@ unsigned long alloc_pages_bulk_noprof(gfp_t gfp, int preferred_nid,
 	struct per_cpu_pages *pcp;
 	struct list_head *pcp_list;
 	struct alloc_context ac;
-	gfp_t alloc_gfp;
 	unsigned int alloc_flags = ALLOC_WMARK_LOW;
 	int nr_populated = 0, nr_account = 0;
 
@@ -5092,10 +5091,8 @@ unsigned long alloc_pages_bulk_noprof(gfp_t gfp, int preferred_nid,
 
 	/* May set ALLOC_NOFRAGMENT, fragmentation will return 1 page. */
 	gfp &= gfp_allowed_mask;
-	alloc_gfp = gfp;
-	if (!prepare_alloc_pages(gfp, 0, preferred_nid, nodemask, &ac, &alloc_gfp, &alloc_flags))
+	if (!prepare_alloc_pages(gfp, 0, preferred_nid, nodemask, &ac, &gfp, &alloc_flags))
 		goto out;
-	gfp = alloc_gfp;
 
 	/* Find an allowed local zone that meets the low watermark. */
 	z = ac.preferred_zoneref;

---
base-commit: 57e5b07deacb0a9bd7b8c9b933ff72e902d4f06b
change-id: 20260331-b4-prepare_alloc_pages-flags-5bb9a1e04e00

Best regards,
-- 
Brendan Jackman <jackmanb@google.com>
Re: [PATCH] mm/page_alloc: cleanup flag vars in alloc_pages_bulk_noprof()
Posted by Suren Baghdasaryan 19 hours ago
On Tue, Mar 31, 2026 at 3:52 AM Brendan Jackman <jackmanb@google.com> wrote:
>
> These two variables are redundant, squash them to align
> alloc_pages_bulk_noprof() with the style used in
> alloc_frozen_pages_nolock_noprof().

Indeed. I'm not sure why this was needed even in the original patch
(387ba26fb1cb) that introduced this function. It carefully preserves
the original gfp even though its value either gets overwritten later
(prepare_alloc_pages succeeds) or is unused (prepare_alloc_pages
fails)...

>
> Signed-off-by: Brendan Jackman <jackmanb@google.com>

Reviewed-by: Suren Baghdasaryan <surenb@google.com>

> ---
>  mm/page_alloc.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 111b54df8a3cb..5e280ded6e7ac 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -5051,7 +5051,6 @@ unsigned long alloc_pages_bulk_noprof(gfp_t gfp, int preferred_nid,
>         struct per_cpu_pages *pcp;
>         struct list_head *pcp_list;
>         struct alloc_context ac;
> -       gfp_t alloc_gfp;
>         unsigned int alloc_flags = ALLOC_WMARK_LOW;
>         int nr_populated = 0, nr_account = 0;
>
> @@ -5092,10 +5091,8 @@ unsigned long alloc_pages_bulk_noprof(gfp_t gfp, int preferred_nid,
>
>         /* May set ALLOC_NOFRAGMENT, fragmentation will return 1 page. */
>         gfp &= gfp_allowed_mask;
> -       alloc_gfp = gfp;
> -       if (!prepare_alloc_pages(gfp, 0, preferred_nid, nodemask, &ac, &alloc_gfp, &alloc_flags))
> +       if (!prepare_alloc_pages(gfp, 0, preferred_nid, nodemask, &ac, &gfp, &alloc_flags))
>                 goto out;
> -       gfp = alloc_gfp;
>
>         /* Find an allowed local zone that meets the low watermark. */
>         z = ac.preferred_zoneref;
>
> ---
> base-commit: 57e5b07deacb0a9bd7b8c9b933ff72e902d4f06b
> change-id: 20260331-b4-prepare_alloc_pages-flags-5bb9a1e04e00
>
> Best regards,
> --
> Brendan Jackman <jackmanb@google.com>
>