diff options
-rw-r--r-- | arch/powerpc/include/asm/mmu-hash64.h | 3 | ||||
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 12 | ||||
-rw-r--r-- | arch/powerpc/mm/hugetlbpage-hash64.c | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h index 18171a86bff6..2accc9611248 100644 --- a/arch/powerpc/include/asm/mmu-hash64.h +++ b/arch/powerpc/include/asm/mmu-hash64.h | |||
@@ -342,7 +342,8 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid, | |||
342 | unsigned int shift, unsigned int mmu_psize); | 342 | unsigned int shift, unsigned int mmu_psize); |
343 | extern void hash_failure_debug(unsigned long ea, unsigned long access, | 343 | extern void hash_failure_debug(unsigned long ea, unsigned long access, |
344 | unsigned long vsid, unsigned long trap, | 344 | unsigned long vsid, unsigned long trap, |
345 | int ssize, int psize, unsigned long pte); | 345 | int ssize, int psize, int lpsize, |
346 | unsigned long pte); | ||
346 | extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend, | 347 | extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend, |
347 | unsigned long pstart, unsigned long prot, | 348 | unsigned long pstart, unsigned long prot, |
348 | int psize, int ssize); | 349 | int psize, int ssize); |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index cd75d68a730b..5f7a85d40a75 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -936,14 +936,14 @@ static inline int subpage_protection(struct mm_struct *mm, unsigned long ea) | |||
936 | 936 | ||
937 | void hash_failure_debug(unsigned long ea, unsigned long access, | 937 | void hash_failure_debug(unsigned long ea, unsigned long access, |
938 | unsigned long vsid, unsigned long trap, | 938 | unsigned long vsid, unsigned long trap, |
939 | int ssize, int psize, unsigned long pte) | 939 | int ssize, int psize, int lpsize, unsigned long pte) |
940 | { | 940 | { |
941 | if (!printk_ratelimit()) | 941 | if (!printk_ratelimit()) |
942 | return; | 942 | return; |
943 | pr_info("mm: Hashing failure ! EA=0x%lx access=0x%lx current=%s\n", | 943 | pr_info("mm: Hashing failure ! EA=0x%lx access=0x%lx current=%s\n", |
944 | ea, access, current->comm); | 944 | ea, access, current->comm); |
945 | pr_info(" trap=0x%lx vsid=0x%lx ssize=%d psize=%d pte=0x%lx\n", | 945 | pr_info(" trap=0x%lx vsid=0x%lx ssize=%d base psize=%d psize %d pte=0x%lx\n", |
946 | trap, vsid, ssize, psize, pte); | 946 | trap, vsid, ssize, psize, lpsize, pte); |
947 | } | 947 | } |
948 | 948 | ||
949 | /* Result code is: | 949 | /* Result code is: |
@@ -1116,7 +1116,7 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap) | |||
1116 | */ | 1116 | */ |
1117 | if (rc == -1) | 1117 | if (rc == -1) |
1118 | hash_failure_debug(ea, access, vsid, trap, ssize, psize, | 1118 | hash_failure_debug(ea, access, vsid, trap, ssize, psize, |
1119 | pte_val(*ptep)); | 1119 | psize, pte_val(*ptep)); |
1120 | #ifndef CONFIG_PPC_64K_PAGES | 1120 | #ifndef CONFIG_PPC_64K_PAGES |
1121 | DBG_LOW(" o-pte: %016lx\n", pte_val(*ptep)); | 1121 | DBG_LOW(" o-pte: %016lx\n", pte_val(*ptep)); |
1122 | #else | 1122 | #else |
@@ -1194,7 +1194,9 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, | |||
1194 | */ | 1194 | */ |
1195 | if (rc == -1) | 1195 | if (rc == -1) |
1196 | hash_failure_debug(ea, access, vsid, trap, ssize, | 1196 | hash_failure_debug(ea, access, vsid, trap, ssize, |
1197 | mm->context.user_psize, pte_val(*ptep)); | 1197 | mm->context.user_psize, |
1198 | mm->context.user_psize, | ||
1199 | pte_val(*ptep)); | ||
1198 | 1200 | ||
1199 | local_irq_restore(flags); | 1201 | local_irq_restore(flags); |
1200 | } | 1202 | } |
diff --git a/arch/powerpc/mm/hugetlbpage-hash64.c b/arch/powerpc/mm/hugetlbpage-hash64.c index b913f416d97a..0f1d94a1fb82 100644 --- a/arch/powerpc/mm/hugetlbpage-hash64.c +++ b/arch/powerpc/mm/hugetlbpage-hash64.c | |||
@@ -110,7 +110,7 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid, | |||
110 | if (unlikely(slot == -2)) { | 110 | if (unlikely(slot == -2)) { |
111 | *ptep = __pte(old_pte); | 111 | *ptep = __pte(old_pte); |
112 | hash_failure_debug(ea, access, vsid, trap, ssize, | 112 | hash_failure_debug(ea, access, vsid, trap, ssize, |
113 | mmu_psize, old_pte); | 113 | mmu_psize, mmu_psize, old_pte); |
114 | return -1; | 114 | return -1; |
115 | } | 115 | } |
116 | 116 | ||