Message ID | 1606459889-15428-1-git-send-email-ego@linux.vnet.ibm.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3] xscom: Fix xscom error logging caused due to xscom OPAL call | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch master (89a32b4930be829f37e6967354a759e38048d01f) |
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot | success | Test snowpatch/job/snowpatch-skiboot on branch master |
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot-dco | success | Signed-off-by present |
On 11/27/20 12:21 PM, Gautham R. Shenoy wrote: > From: "Gautham R. Shenoy" <ego@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 reduces the severity of the log from > PR_ERROR to PR_INFO for the xscom read and write made via OPAL calls. > > Tested-by: Pavaman Subramaniyam <pavsubra@in.ibm.com> > Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Thanks! Merged as a4101173cacf7. -Vasant
diff --git a/hw/xscom.c b/hw/xscom.c index 0eda567..c97740a 100644 --- a/hw/xscom.c +++ b/hw/xscom.c @@ -373,7 +373,16 @@ 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 an OPAL call XSCOM read fails, then the OPAL-PRD will + * handle logging the error. Hence just print an + * informational message here. + */ + if (this_cpu()->current_token == OPAL_XSCOM_READ) + prlog(PR_INFO, "XSCOM: Read failed, ret = %lld\n", ret); + else + prerror("XSCOM: Read failed, ret = %lld\n", ret); + return ret; } @@ -424,8 +433,16 @@ static int __xscom_write(uint32_t gcid, uint32_t pcb_addr, uint64_t val) */ if (proc_gen == proc_gen_p9 && ret == OPAL_XSCOM_CHIPLET_OFF) return ret; + /* + * If an OPAL call XSCOM write fails, then the OPAL-PRD will + * handle logging the error. Hence just print an + * informational message here. + */ + if (this_cpu()->current_token == OPAL_XSCOM_WRITE) + prlog(PR_INFO, "XSCOM: Write failed, ret = %lld\n", ret); + else + prerror("XSCOM: Write failed, ret = %lld\n", ret); - prerror("XSCOM: Write failed, ret = %lld\n", ret); return ret; }