Skip to content

Commit

Permalink
selftests/powerpc: Use proper error code to check fault address
Browse files Browse the repository at this point in the history
ERR_NX_TRANSLATION(CSB.CC=5) is for internal to VAS for fault handling
and should not used by OS. ERR_NX_AT_FAULT(CSB.CC=250) is the proper
error code should be reported by OS when NX encounters address
translation failure.

This patch uses CC=250 to determine the fault address when the request
is not successful.

Signed-off-by: Haren Myneni <haren@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/0315251705baff94f678c33178491b5008723511.camel@linux.ibm.com
  • Loading branch information
Haren Myneni authored and Michael Ellerman committed Jul 15, 2020
1 parent 6068e1a commit f0479c4
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions tools/testing/selftests/powerpc/nx-gzip/gunz_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -698,13 +698,13 @@ int decompress_file(int argc, char **argv, void *devhandle)

switch (cc) {

case ERR_NX_TRANSLATION:
case ERR_NX_AT_FAULT:

/* We touched the pages ahead of time. In the most common case
* we shouldn't be here. But may be some pages were paged out.
* Kernel should have placed the faulting address to fsaddr.
*/
NXPRT(fprintf(stderr, "ERR_NX_TRANSLATION %p\n",
NXPRT(fprintf(stderr, "ERR_NX_AT_FAULT %p\n",
(void *)cmdp->crb.csb.fsaddr));

if (pgfault_retries == NX_MAX_FAULTS) {
Expand Down
4 changes: 2 additions & 2 deletions tools/testing/selftests/powerpc/nx-gzip/gzfht_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,13 +306,13 @@ int compress_file(int argc, char **argv, void *handle)
lzcounts, cmdp, handle);

if (cc != ERR_NX_OK && cc != ERR_NX_TPBC_GT_SPBC &&
cc != ERR_NX_TRANSLATION) {
cc != ERR_NX_AT_FAULT) {
fprintf(stderr, "nx error: cc= %d\n", cc);
exit(-1);
}

/* Page faults are handled by the user code */
if (cc == ERR_NX_TRANSLATION) {
if (cc == ERR_NX_AT_FAULT) {
NXPRT(fprintf(stderr, "page fault: cc= %d, ", cc));
NXPRT(fprintf(stderr, "try= %d, fsa= %08llx\n",
fault_tries,
Expand Down

0 comments on commit f0479c4

Please sign in to comment.