]> git.hungrycats.org Git - linux/commitdiff
sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill pte_ERROR().
authorDavid S. Miller <davem@davemloft.net>
Tue, 29 Apr 2014 20:28:23 +0000 (13:28 -0700)
committerJiri Slaby <jslaby@suse.cz>
Tue, 26 Aug 2014 12:11:56 +0000 (14:11 +0200)
[ Upstream commit fe866433f843b080246ce729b5e6b27b5f5d9a58 ]

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>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
arch/sparc/include/asm/pgtable_64.h

index 90f289f0ec8e7c4ac10a9dda04db880969c69a80..dc0c4d116651c7bafff0dae61eb79f2d85b8407d 100644 (file)
 /* Kernel has a separate 44bit address space. */
 #define FIRST_USER_ADDRESS     0
 
-#define pte_ERROR(e)   __builtin_trap()
-#define pmd_ERROR(e)   __builtin_trap()
-#define pgd_ERROR(e)   __builtin_trap()
+#define pmd_ERROR(e)                                                   \
+       pr_err("%s:%d: bad pmd %p(%016lx) seen at (%pS)\n",             \
+              __FILE__, __LINE__, &(e), pmd_val(e), __builtin_return_address(0))
+#define pgd_ERROR(e)                                                   \
+       pr_err("%s:%d: bad pgd %p(%016lx) seen at (%pS)\n",             \
+              __FILE__, __LINE__, &(e), pgd_val(e), __builtin_return_address(0))
 
 #endif /* !(__ASSEMBLY__) */