aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>2013-04-28 05:37:37 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-04-30 02:00:22 -0400
commitd8139ebf8596a1e56bd98b7a83e8777b5ff5fb2d (patch)
tree4dfa5377395a85533d945a3f3dd112cd27c2e7cb /arch/powerpc/mm
parent7e74c3921ad9610c0b49f28b8fc69f7480505841 (diff)
powerpc: print both base and actual page size on hash failure
Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/mm')
-rw-r--r--arch/powerpc/mm/hash_utils_64.c12
-rw-r--r--arch/powerpc/mm/hugetlbpage-hash64.c2
2 files changed, 8 insertions, 6 deletions
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
937void hash_failure_debug(unsigned long ea, unsigned long access, 937void 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