@@ -155,7 +155,7 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level, bool dmsg)
155
155
pt_dump_cont_printf (m , dmsg , " " );
156
156
if ((level == 4 && pr & _PAGE_PAT ) ||
157
157
((level == 3 || level == 2 ) && pr & _PAGE_PAT_LARGE ))
158
- pt_dump_cont_printf (m , dmsg , "pat " );
158
+ pt_dump_cont_printf (m , dmsg , "PAT " );
159
159
else
160
160
pt_dump_cont_printf (m , dmsg , " " );
161
161
if (pr & _PAGE_GLOBAL )
@@ -198,8 +198,8 @@ static void note_page(struct seq_file *m, struct pg_state *st,
198
198
* we have now. "break" is either changing perms, levels or
199
199
* address space marker.
200
200
*/
201
- prot = pgprot_val (new_prot ) & PTE_FLAGS_MASK ;
202
- cur = pgprot_val (st -> current_prot ) & PTE_FLAGS_MASK ;
201
+ prot = pgprot_val (new_prot );
202
+ cur = pgprot_val (st -> current_prot );
203
203
204
204
if (!st -> level ) {
205
205
/* First entry */
@@ -269,13 +269,13 @@ static void walk_pte_level(struct seq_file *m, struct pg_state *st, pmd_t addr,
269
269
{
270
270
int i ;
271
271
pte_t * start ;
272
+ pgprotval_t prot ;
272
273
273
274
start = (pte_t * ) pmd_page_vaddr (addr );
274
275
for (i = 0 ; i < PTRS_PER_PTE ; i ++ ) {
275
- pgprot_t prot = pte_pgprot (* start );
276
-
276
+ prot = pte_flags (* start );
277
277
st -> current_address = normalize_addr (P + i * PTE_LEVEL_MULT );
278
- note_page (m , st , prot , 4 );
278
+ note_page (m , st , __pgprot ( prot ) , 4 );
279
279
start ++ ;
280
280
}
281
281
}
@@ -287,18 +287,19 @@ static void walk_pmd_level(struct seq_file *m, struct pg_state *st, pud_t addr,
287
287
{
288
288
int i ;
289
289
pmd_t * start ;
290
+ pgprotval_t prot ;
290
291
291
292
start = (pmd_t * ) pud_page_vaddr (addr );
292
293
for (i = 0 ; i < PTRS_PER_PMD ; i ++ ) {
293
294
st -> current_address = normalize_addr (P + i * PMD_LEVEL_MULT );
294
295
if (!pmd_none (* start )) {
295
- pgprotval_t prot = pmd_val (* start ) & PTE_FLAGS_MASK ;
296
-
297
- if (pmd_large (* start ) || !pmd_present (* start ))
296
+ if (pmd_large (* start ) || !pmd_present (* start )) {
297
+ prot = pmd_flags (* start );
298
298
note_page (m , st , __pgprot (prot ), 3 );
299
- else
299
+ } else {
300
300
walk_pte_level (m , st , * start ,
301
301
P + i * PMD_LEVEL_MULT );
302
+ }
302
303
} else
303
304
note_page (m , st , __pgprot (0 ), 3 );
304
305
start ++ ;
@@ -318,19 +319,20 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, pgd_t addr,
318
319
{
319
320
int i ;
320
321
pud_t * start ;
322
+ pgprotval_t prot ;
321
323
322
324
start = (pud_t * ) pgd_page_vaddr (addr );
323
325
324
326
for (i = 0 ; i < PTRS_PER_PUD ; i ++ ) {
325
327
st -> current_address = normalize_addr (P + i * PUD_LEVEL_MULT );
326
328
if (!pud_none (* start )) {
327
- pgprotval_t prot = pud_val (* start ) & PTE_FLAGS_MASK ;
328
-
329
- if (pud_large (* start ) || !pud_present (* start ))
329
+ if (pud_large (* start ) || !pud_present (* start )) {
330
+ prot = pud_flags (* start );
330
331
note_page (m , st , __pgprot (prot ), 2 );
331
- else
332
+ } else {
332
333
walk_pmd_level (m , st , * start ,
333
334
P + i * PUD_LEVEL_MULT );
335
+ }
334
336
} else
335
337
note_page (m , st , __pgprot (0 ), 2 );
336
338
@@ -351,6 +353,7 @@ void ptdump_walk_pgd_level(struct seq_file *m, pgd_t *pgd)
351
353
#else
352
354
pgd_t * start = swapper_pg_dir ;
353
355
#endif
356
+ pgprotval_t prot ;
354
357
int i ;
355
358
struct pg_state st = {};
356
359
@@ -362,13 +365,13 @@ void ptdump_walk_pgd_level(struct seq_file *m, pgd_t *pgd)
362
365
for (i = 0 ; i < PTRS_PER_PGD ; i ++ ) {
363
366
st .current_address = normalize_addr (i * PGD_LEVEL_MULT );
364
367
if (!pgd_none (* start )) {
365
- pgprotval_t prot = pgd_val (* start ) & PTE_FLAGS_MASK ;
366
-
367
- if (pgd_large (* start ) || !pgd_present (* start ))
368
+ if (pgd_large (* start ) || !pgd_present (* start )) {
369
+ prot = pgd_flags (* start );
368
370
note_page (m , & st , __pgprot (prot ), 1 );
369
- else
371
+ } else {
370
372
walk_pud_level (m , & st , * start ,
371
373
i * PGD_LEVEL_MULT );
374
+ }
372
375
} else
373
376
note_page (m , & st , __pgprot (0 ), 1 );
374
377
0 commit comments