Skip to content

Commit

Permalink
arm64: Make the kernel page dump utility aware of the CONT bit
Browse files Browse the repository at this point in the history
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: Jeremy Linton <jeremy.linton@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  • Loading branch information
Jeremy Linton authored and Catalin Marinas committed Oct 8, 2015
1 parent 06f90d2 commit 202e41a
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion arch/arm64/mm/dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ static struct addr_marker address_markers[] = {
{ -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 seq_file *seq;
const struct addr_marker *marker;
Expand Down Expand Up @@ -113,6 +119,16 @@ static const struct prot_bits pte_bits[] = {
.val = PTE_NG,
.set = "NG",
.clear = " ",
}, {
.mask = PTE_CONT,
.val = PTE_CONT,
.set = "CON",
.clear = " ",
}, {
.mask = PTE_TABLE_BIT,
.val = PTE_TABLE_BIT,
.set = " ",
.clear = "BLK",
}, {
.mask = PTE_UXN,
.val = PTE_UXN,
Expand Down Expand Up @@ -198,7 +214,7 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level,
unsigned long delta;

if (st->current_prot) {
seq_printf(st->seq, "0x%16lx-0x%16lx ",
seq_printf(st->seq, "0x%016lx-0x%016lx ",
st->start_address, addr);

delta = (addr - st->start_address) >> 10;
Expand Down

0 comments on commit 202e41a

Please sign in to comment.