mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 14:30:58 +07:00
selftests/powerpc: Use proper error code to check fault address
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
This commit is contained in:
parent
6068e1a442
commit
f0479c4bcb
@ -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) {
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user