Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm/page_alloc: Fix try_alloc_pages

Fix an obvious bug. try_alloc_pages() should set_page_refcounted.

[ Not so obvious: it was probably correct at the time it was written but
was at some point then rebased on top of v6.14-rc1.

And at that point there was a semantic conflict with commit
efabfe1420f5 ("mm/page_alloc: move set_page_refcounted() to callers
of get_page_from_freelist()") and became buggy.
- Linus ]

Fixes: 97769a53f117 ("mm, bpf: Introduce try_alloc_pages() for opportunistic page allocation")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Shakeel Butt <shakeel.butt@linux.dev>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil BAbka <vbabka@suse.cz>
Reviewed-by: Harry Yoo <harry.yoo@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Alexei Starovoitov and committed by
Linus Torvalds
2985dae1 5de0afb4

+3
+3
mm/page_alloc.c
··· 7385 7385 7386 7386 /* Unlike regular alloc_pages() there is no __alloc_pages_slowpath(). */ 7387 7387 7388 + if (page) 7389 + set_page_refcounted(page); 7390 + 7388 7391 if (memcg_kmem_online() && page && 7389 7392 unlikely(__memcg_kmem_charge_page(page, alloc_gfp, order) != 0)) { 7390 7393 free_pages_nolock(page, order);