diff options
Diffstat (limited to 'arch/powerpc/mm/dump_linuxpagetables.c')
-rw-r--r-- | arch/powerpc/mm/dump_linuxpagetables.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/powerpc/mm/dump_linuxpagetables.c b/arch/powerpc/mm/dump_linuxpagetables.c index d659345a98d6..44fe4833910f 100644 --- a/arch/powerpc/mm/dump_linuxpagetables.c +++ b/arch/powerpc/mm/dump_linuxpagetables.c | |||
@@ -16,6 +16,7 @@ | |||
16 | */ | 16 | */ |
17 | #include <linux/debugfs.h> | 17 | #include <linux/debugfs.h> |
18 | #include <linux/fs.h> | 18 | #include <linux/fs.h> |
19 | #include <linux/hugetlb.h> | ||
19 | #include <linux/io.h> | 20 | #include <linux/io.h> |
20 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
21 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
@@ -391,7 +392,7 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) | |||
391 | 392 | ||
392 | for (i = 0; i < PTRS_PER_PMD; i++, pmd++) { | 393 | for (i = 0; i < PTRS_PER_PMD; i++, pmd++) { |
393 | addr = start + i * PMD_SIZE; | 394 | addr = start + i * PMD_SIZE; |
394 | if (!pmd_none(*pmd)) | 395 | if (!pmd_none(*pmd) && !pmd_huge(*pmd)) |
395 | /* pmd exists */ | 396 | /* pmd exists */ |
396 | walk_pte(st, pmd, addr); | 397 | walk_pte(st, pmd, addr); |
397 | else | 398 | else |
@@ -407,7 +408,7 @@ static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) | |||
407 | 408 | ||
408 | for (i = 0; i < PTRS_PER_PUD; i++, pud++) { | 409 | for (i = 0; i < PTRS_PER_PUD; i++, pud++) { |
409 | addr = start + i * PUD_SIZE; | 410 | addr = start + i * PUD_SIZE; |
410 | if (!pud_none(*pud)) | 411 | if (!pud_none(*pud) && !pud_huge(*pud)) |
411 | /* pud exists */ | 412 | /* pud exists */ |
412 | walk_pmd(st, pud, addr); | 413 | walk_pmd(st, pud, addr); |
413 | else | 414 | else |
@@ -427,7 +428,7 @@ static void walk_pagetables(struct pg_state *st) | |||
427 | */ | 428 | */ |
428 | for (i = 0; i < PTRS_PER_PGD; i++, pgd++) { | 429 | for (i = 0; i < PTRS_PER_PGD; i++, pgd++) { |
429 | addr = KERN_VIRT_START + i * PGDIR_SIZE; | 430 | addr = KERN_VIRT_START + i * PGDIR_SIZE; |
430 | if (!pgd_none(*pgd)) | 431 | if (!pgd_none(*pgd) && !pgd_huge(*pgd)) |
431 | /* pgd exists */ | 432 | /* pgd exists */ |
432 | walk_pud(st, pgd, addr); | 433 | walk_pud(st, pgd, addr); |
433 | else | 434 | else |