@@ -336,6 +336,10 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
addr >= st->marker[1].start_address) {
const char *unit = units;
unsigned long delta;
+ unsigned int i;
+
+ for (i = 0; i < st->level; i++)
+ pt_dump_seq_printf(st->seq, " ");
if (st->current_prot) {
note_prot_uxn(st, addr);
@@ -362,6 +366,10 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
st->start_address, addr);
}
+ /* Align region information regardlesss of level */
+ for (i = st->level; i < 4; i++)
+ pt_dump_seq_printf(st->seq, " ");
+
delta >>= 10;
while (!(delta & 1023) && unit[1]) {
delta >>= 10;
@@ -369,6 +377,7 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
}
pt_dump_seq_printf(st->seq, "%9lu%c %s", delta, *unit,
pg_level[st->level].name);
+
if (st->current_prot && pg_level[st->level].bits)
dump_prot(st, pg_level[st->level].bits,
pg_level[st->level].num);
Outputs each level of the page table with two additional spaces for parsers, distinction, and readability while maintaining the alignment of region size and attributes. Signed-off-by: Maxwell Bland <mbland@motorola.com> --- arch/arm64/mm/ptdump.c | 9 +++++++++ 1 file changed, 9 insertions(+)