[to-be-updated] alloc_tag-fix-undetected-compressed-tag-overflow-when-profiling-is-disabled.patch removed from -mm tree
Andrew Morton <[email protected]>
| Newsgroups | org.kernel.vger.mm-commits |
|---|---|
| Message-ID | <[email protected]> |
The quilt patch titled
Subject: alloc_tag: fix undetected compressed tag overflow when profiling is disabled
has been removed from the -mm tree. Its filename was
alloc_tag-fix-undetected-compressed-tag-overflow-when-profiling-is-disabled.patch
This patch was dropped because an updated version will be issued
------------------------------------------------------
From: Hao Ge <[email protected]>
Subject: alloc_tag: fix undetected compressed tag overflow when profiling is disabled
Date: Tue, 4 Aug 2026 14:44:08 +0800
In reserve_module_tags(), the tag overflow check is gated on
mem_alloc_profiling_enabled():
if (mem_alloc_profiling_enabled() && !tags_addressable())
If profiling is toggled off at runtime and a module is loaded whose tags
exceed the compressed-mode limit, shutdown_mem_profiling() is skipped.
vm_module_tags_populate() still maps memory for the tags and the module
loads successfully, but the total tag count now exceeds what
NR_UNUSED_PAGEFLAG_BITS can address.
Once profiling is re-enabled, ref_to_idx() computes each tag's index as
its position in the alloc_tag array. update_page_tag_ref() masks it to
alloc_tag_ref_mask before storing in page->flags. Indices beyond the mask
are truncated and idx_to_ref() resolves them to wrong tags.
mem_alloc_profiling_enabled() and mem_profiling_compressed are
independent. Once compressed mode is established at boot, it stays active
regardless of runtime toggles of mem_profiling.
We therefore remove the mem_alloc_profiling_enabled() guard.
Link: https://lore.kernel.org/[email protected]
Fixes: 4835f747d3ed ("alloc_tag: support for page allocation tag compression")
Signed-off-by: Hao Ge <[email protected]>
Cc: Hao Ge <[email protected]>
Cc: Abhishek Bapat <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---
mm/alloc_tag.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/alloc_tag.c~alloc_tag-fix-undetected-compressed-tag-overflow-when-profiling-is-disabled
+++ a/mm/alloc_tag.c
@@ -904,7 +904,7 @@ unlock:
int grow_res;
module_tags.size = offset + size;
- if (mem_alloc_profiling_enabled() && !tags_addressable()) {
+ if (!tags_addressable()) {
shutdown_mem_profiling(true);
pr_warn("With module %s there are too many tags to fit in %d page flag bits. Memory allocation profiling is disabled!\n",
mod->name, NR_UNUSED_PAGEFLAG_BITS);
_
Patches currently in -mm which might be from [email protected] are