@@ -138,7 +138,7 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level, bool dmsg)
138
138
{
139
139
pgprotval_t pr = pgprot_val (prot );
140
140
static const char * const level_name [] =
141
- { "cr3" , "pgd" , "pud" , "pmd" , "pte" };
141
+ { "cr3" , "pgd" , "p4d" , " pud" , "pmd" , "pte" };
142
142
143
143
if (!pgprot_val (prot )) {
144
144
/* Not present */
@@ -162,12 +162,12 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level, bool dmsg)
162
162
pt_dump_cont_printf (m , dmsg , " " );
163
163
164
164
/* Bit 7 has a different meaning on level 3 vs 4 */
165
- if (level <= 3 && pr & _PAGE_PSE )
165
+ if (level <= 4 && pr & _PAGE_PSE )
166
166
pt_dump_cont_printf (m , dmsg , "PSE " );
167
167
else
168
168
pt_dump_cont_printf (m , dmsg , " " );
169
- if ((level == 4 && pr & _PAGE_PAT ) ||
170
- ((level == 3 || level == 2 ) && pr & _PAGE_PAT_LARGE ))
169
+ if ((level == 5 && pr & _PAGE_PAT ) ||
170
+ ((level == 4 || level == 3 ) && pr & _PAGE_PAT_LARGE ))
171
171
pt_dump_cont_printf (m , dmsg , "PAT " );
172
172
else
173
173
pt_dump_cont_printf (m , dmsg , " " );
@@ -298,7 +298,7 @@ static void walk_pte_level(struct seq_file *m, struct pg_state *st, pmd_t addr,
298
298
for (i = 0 ; i < PTRS_PER_PTE ; i ++ ) {
299
299
prot = pte_flags (* start );
300
300
st -> current_address = normalize_addr (P + i * PTE_LEVEL_MULT );
301
- note_page (m , st , __pgprot (prot ), 4 );
301
+ note_page (m , st , __pgprot (prot ), 5 );
302
302
start ++ ;
303
303
}
304
304
}
@@ -317,13 +317,13 @@ static void walk_pmd_level(struct seq_file *m, struct pg_state *st, pud_t addr,
317
317
if (!pmd_none (* start )) {
318
318
if (pmd_large (* start ) || !pmd_present (* start )) {
319
319
prot = pmd_flags (* start );
320
- note_page (m , st , __pgprot (prot ), 3 );
320
+ note_page (m , st , __pgprot (prot ), 4 );
321
321
} else {
322
322
walk_pte_level (m , st , * start ,
323
323
P + i * PMD_LEVEL_MULT );
324
324
}
325
325
} else
326
- note_page (m , st , __pgprot (0 ), 3 );
326
+ note_page (m , st , __pgprot (0 ), 4 );
327
327
start ++ ;
328
328
}
329
329
}
@@ -362,13 +362,13 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, p4d_t addr,
362
362
!pud_already_checked (prev_pud , start , st -> check_wx )) {
363
363
if (pud_large (* start ) || !pud_present (* start )) {
364
364
prot = pud_flags (* start );
365
- note_page (m , st , __pgprot (prot ), 2 );
365
+ note_page (m , st , __pgprot (prot ), 3 );
366
366
} else {
367
367
walk_pmd_level (m , st , * start ,
368
368
P + i * PUD_LEVEL_MULT );
369
369
}
370
370
} else
371
- note_page (m , st , __pgprot (0 ), 2 );
371
+ note_page (m , st , __pgprot (0 ), 3 );
372
372
373
373
prev_pud = start ;
374
374
start ++ ;
0 commit comments