mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 22:19:30 +02:00
mm: memblock: show all region flags in debugfs
Commit493f349e38("memblock: Add flags and nid info in memblock debugfs") made memblock_debug_show() stop after finding the first set flag. A memblock region can carry multiple flags, so the remaining flags are hidden from debugfs. Walk all bits in the region flags and print every set flag separated by "|". Keep walking beyond flagname[] so that a set flag without a known name is reported as UNKNOWN rather than silently ignored. Fixes:493f349e38("memblock: Add flags and nid info in memblock debugfs") Signed-off-by: Meijing Zhao <zhaomeijing@lixiang.com> Link: https://patch.msgid.link/20260902075944.3742866-1-zhaomeijing100@gmail.com Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
This commit is contained in:
committed by
Mike Rapoport (Microsoft)
parent
cee9395acd
commit
e2d5b01f87
+11
-7
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user