|
@@ -150,6 +150,7 @@ static const struct prot_bits pte_bits[] = {
|
|
|
|
|
|
struct pg_level {
|
|
|
const struct prot_bits *bits;
|
|
|
+ const char *name;
|
|
|
size_t num;
|
|
|
u64 mask;
|
|
|
};
|
|
@@ -157,15 +158,19 @@ struct pg_level {
|
|
|
static struct pg_level pg_level[] = {
|
|
|
{
|
|
|
}, { /* pgd */
|
|
|
+ .name = "PGD",
|
|
|
.bits = pte_bits,
|
|
|
.num = ARRAY_SIZE(pte_bits),
|
|
|
}, { /* pud */
|
|
|
+ .name = (CONFIG_PGTABLE_LEVELS > 3) ? "PUD" : "PGD",
|
|
|
.bits = pte_bits,
|
|
|
.num = ARRAY_SIZE(pte_bits),
|
|
|
}, { /* pmd */
|
|
|
+ .name = (CONFIG_PGTABLE_LEVELS > 2) ? "PMD" : "PGD",
|
|
|
.bits = pte_bits,
|
|
|
.num = ARRAY_SIZE(pte_bits),
|
|
|
}, { /* pte */
|
|
|
+ .name = "PTE",
|
|
|
.bits = pte_bits,
|
|
|
.num = ARRAY_SIZE(pte_bits),
|
|
|
},
|
|
@@ -214,7 +219,8 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level,
|
|
|
delta >>= 10;
|
|
|
unit++;
|
|
|
}
|
|
|
- seq_printf(st->seq, "%9lu%c", delta, *unit);
|
|
|
+ seq_printf(st->seq, "%9lu%c %s", delta, *unit,
|
|
|
+ pg_level[st->level].name);
|
|
|
if (pg_level[st->level].bits)
|
|
|
dump_prot(st, pg_level[st->level].bits,
|
|
|
pg_level[st->level].num);
|