summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-09-14 09:36:43 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2026-09-14 09:36:43 -0700
commitebb58ec7f8539450804741d974acbb985da0f071 (patch)
treeeaffbf7c81cf3dbcc1489766bccedaade579161b
parent164f652b6ef9209437ca016beedfcab626ff4f02 (diff)
parent6e33dc90df108c76899dc544a42d17adcba61668 (diff)
Merge tag 'fixes-2026-09-14' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock
Pull memblock fixes from Mike Rapoport: "Fix for regions display in debugfs and MAINTAINERS update: - Make sure that multiple flags on a memblock region are all displayed in debugfs - Update memblock tree tags in MAINTAINERS" * tag 'fixes-2026-09-14' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock: MAINTAINERS: update memblock tree URLs mm: memblock: show all region flags in debugfs
-rw-r--r--MAINTAINERS4
-rw-r--r--mm/memblock.c18
2 files changed, 13 insertions, 9 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index c2414447892c..3b2eb2a7a89a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17031,8 +17031,8 @@ MEMBLOCK AND MEMORY MANAGEMENT INITIALIZATION
M: Mike Rapoport <rppt@kernel.org>
L: linux-mm@kvack.org
S: Maintained
-T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git for-next
-T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock.git for-next
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock.git fixes
F: Documentation/core-api/boot-time-mm.rst
F: include/linux/kho/abi/memblock.h
F: include/linux/memblock.h
diff --git a/mm/memblock.c b/mm/memblock.c
index 9ce86349a29f..021db49eb7fc 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -2908,14 +2908,18 @@ static int memblock_debug_show(struct seq_file *m, void *private)
else
seq_printf(m, "%4c ", 'x');
if (reg->flags) {
- for (j = 0; j < count; j++) {
- if (reg->flags & (1U << j)) {
- seq_printf(m, "%s\n", flagname[j]);
- break;
- }
+ unsigned int flags = reg->flags;
+ bool first = true;
+
+ for (j = 0; flags; j++, flags >>= 1) {
+ if (!(flags & 1))
+ continue;
+ if (!first)
+ seq_putc(m, '|');
+ seq_puts(m, j < count ? flagname[j] : "UNKNOWN");
+ first = false;
}
- if (j == count)
- seq_printf(m, "%s\n", "UNKNOWN");
+ seq_putc(m, '\n');
} else {
seq_printf(m, "%s\n", "NONE");
}