]> git.baikalelectronics.ru Git - kernel.git/commit
sparc64: Fix deficiencies in sun4v error reporting.
authorDavid S. Miller <davem@davemloft.net>
Thu, 11 Oct 2012 00:19:32 +0000 (17:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Oct 2012 00:19:32 +0000 (17:19 -0700)
commit6ad7b2fabc9f88f90de99178148050349bd91298
tree6d369a343c60d3100576b79d0d68b123eee0fbdd
parent2b2632fadfeda0b0c5eb0677a70998c5985ff990
sparc64: Fix deficiencies in sun4v error reporting.

Missing error types, attributes, and report fields.  Pad out
to 64-bytes.

Make string reporting cleaner and easier to extend in the future using
"const char *" arrays that index by either bit position, or absolute
field value.

Report the raw 64-byte error report as a sequence of u64s before the
annotated version.

Only report fields which are valid, given the context and the
attribute bits which are set.

For shutdown requests, use the local copy of the error report not the
one we just freed up back to the queue.  Also, use orderly_poweroff()
just like the Domain Services shutdown request code does.

If the real-address reported is "-1" (unknown) try to disassemble the
instruction to report the effective address of the access.  Only do
this in privileged mode.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/uaccess_64.h
arch/sparc/kernel/traps_64.c
arch/sparc/mm/fault_64.c