Commit 202e41a1 authored by Jeremy Linton's avatar Jeremy Linton Committed by Catalin Marinas

arm64: Make the kernel page dump utility aware of the CONT bit

The kernel page dump utility needs to be aware of the CONT bit before
it will break up pages ranges for display.
Signed-off-by: default avatarJeremy Linton <jeremy.linton@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 06f90d25
...@@ -67,6 +67,12 @@ static struct addr_marker address_markers[] = { ...@@ -67,6 +67,12 @@ static struct addr_marker address_markers[] = {
{ -1, NULL }, { -1, NULL },
}; };
/*
* The page dumper groups page table entries of the same type into a single
* description. It uses pg_state to track the range information while
* iterating over the pte entries. When the continuity is broken it then
* dumps out a description of the range.
*/
struct pg_state { struct pg_state {
struct seq_file *seq; struct seq_file *seq;
const struct addr_marker *marker; const struct addr_marker *marker;
...@@ -113,6 +119,16 @@ static const struct prot_bits pte_bits[] = { ...@@ -113,6 +119,16 @@ static const struct prot_bits pte_bits[] = {
.val = PTE_NG, .val = PTE_NG,
.set = "NG", .set = "NG",
.clear = " ", .clear = " ",
}, {
.mask = PTE_CONT,
.val = PTE_CONT,
.set = "CON",
.clear = " ",
}, {
.mask = PTE_TABLE_BIT,
.val = PTE_TABLE_BIT,
.set = " ",
.clear = "BLK",
}, { }, {
.mask = PTE_UXN, .mask = PTE_UXN,
.val = PTE_UXN, .val = PTE_UXN,
...@@ -198,7 +214,7 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level, ...@@ -198,7 +214,7 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level,
unsigned long delta; unsigned long delta;
if (st->current_prot) { if (st->current_prot) {
seq_printf(st->seq, "0x%16lx-0x%16lx ", seq_printf(st->seq, "0x%016lx-0x%016lx ",
st->start_address, addr); st->start_address, addr);
delta = (addr - st->start_address) >> 10; delta = (addr - st->start_address) >> 10;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment