[Skiboot] [PATCH] xscom: Fix xscom error logging caused due to xscom OPAL call

Gautham R. Shenoy ego at linux.vnet.ibm.com
Fri Oct 2 03:33:47 AEST 2020

From: "Gautham R. Shenoy" <ego at linux.vnet.ibm.com>

Commit 80fd2e963bd4 ("xscom: Don't log xscom errors caused by OPAL
calls") ensured that xscom errors caused due to XSCOM
read/write OPAL calls aren't logged in the error-log since the caller
of the OPAL call is expected to handle it.

However we are continuing to print the prerror() in the OPAL log
regarding the same. This patch ensures that we do not log these errors
in the OPAL-log as well.

Tested-by: Pavaman Subramaniyam <pavsubra at in.ibm.com>
Signed-off-by: Gautham R. Shenoy <ego at linux.vnet.ibm.com>
 hw/xscom.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/hw/xscom.c b/hw/xscom.c
index 0eda567..518a415 100644
--- a/hw/xscom.c
+++ b/hw/xscom.c
@@ -373,7 +373,14 @@ static int __xscom_read(uint32_t gcid, uint32_t pcb_addr, uint64_t *val)
 	if (proc_gen == proc_gen_p9 && ret == OPAL_XSCOM_CHIPLET_OFF)
 		return ret;
-	prerror("XSCOM: Read failed, ret =  %lld\n", ret);
+	/*
+	 * If we're in an XSCOM opal call then opal-prd will handle
+	 * logging the error. If not, log it.
+	 */
+	if (this_cpu()->current_token != OPAL_XSCOM_READ &&
+	    this_cpu()->current_token != OPAL_XSCOM_WRITE)
+		prerror("XSCOM: Read failed, ret =  %lld\n", ret);
 	return ret;

More information about the Skiboot mailing list