diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2013-04-28 05:37:37 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-04-30 02:00:22 -0400 |
commit | d8139ebf8596a1e56bd98b7a83e8777b5ff5fb2d (patch) | |
tree | 4dfa5377395a85533d945a3f3dd112cd27c2e7cb /arch/powerpc/mm | |
parent | 7e74c3921ad9610c0b49f28b8fc69f7480505841 (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.c | 12 | ||||
-rw-r--r-- | arch/powerpc/mm/hugetlbpage-hash64.c | 2 |
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 | ||
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 | ||