diff options
author | David S. Miller <davem@davemloft.net> | 2014-04-29 16:28:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-04 01:56:25 -0400 |
commit | fe866433f843b080246ce729b5e6b27b5f5d9a58 (patch) | |
tree | 4c0123ab989b0386d39cf04be83b76f04523eceb | |
parent | 26cf432551d749e7d581db33529507a711c6eaab (diff) |
sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill pte_ERROR().
pte_ERROR() is not used anywhere, delete it.
For pgd_ERROR() and pmd_ERROR(), output something similar to x86, giving the address
of the pgd/pmd as well as it's value.
Also provide the caller, since these macros are invoked from pgd_clear_bad() and
pmd_clear_bad() which provides little context as to what high level operation was
occuring when the BAD state was detected.
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | arch/sparc/include/asm/pgtable_64.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h index baccf35621c0..fde5abaac0cc 100644 --- a/arch/sparc/include/asm/pgtable_64.h +++ b/arch/sparc/include/asm/pgtable_64.h | |||
@@ -96,9 +96,12 @@ static inline bool kern_addr_valid(unsigned long addr) | |||
96 | /* Kernel has a separate 44bit address space. */ | 96 | /* Kernel has a separate 44bit address space. */ |
97 | #define FIRST_USER_ADDRESS 0 | 97 | #define FIRST_USER_ADDRESS 0 |
98 | 98 | ||
99 | #define pte_ERROR(e) __builtin_trap() | 99 | #define pmd_ERROR(e) \ |
100 | #define pmd_ERROR(e) __builtin_trap() | 100 | pr_err("%s:%d: bad pmd %p(%016lx) seen at (%pS)\n", \ |
101 | #define pgd_ERROR(e) __builtin_trap() | 101 | __FILE__, __LINE__, &(e), pmd_val(e), __builtin_return_address(0)) |
102 | #define pgd_ERROR(e) \ | ||
103 | pr_err("%s:%d: bad pgd %p(%016lx) seen at (%pS)\n", \ | ||
104 | __FILE__, __LINE__, &(e), pgd_val(e), __builtin_return_address(0)) | ||
102 | 105 | ||
103 | #endif /* !(__ASSEMBLY__) */ | 106 | #endif /* !(__ASSEMBLY__) */ |
104 | 107 | ||