[Skiboot] [PATCH] opal/hmi: Display correct chip id while printing NPU FIRs.

Mahesh J Salgaonkar mahesh at linux.vnet.ibm.com
Thu May 31 18:34:33 AEST 2018

From: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>

HMIs for NPU xstops are broadcasted to all chips. All cores on all the
chips receive HMI. HMI handler correctly identifies and extracts the
NPU FIR details from affected chip, but while printing FIR data it
prints chip id and location code details of this_cpu()->chip_id which
may not be correct. This patch fixes this issue.

Signed-off-by: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
 core/hmi.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/core/hmi.c b/core/hmi.c
index c0e2354ad..3bbdb2a34 100644
--- a/core/hmi.c
+++ b/core/hmi.c
@@ -634,7 +634,7 @@ static void dump_scoms(int flat_chip_id, const char *unit, uint32_t *scoms,
 		if (r != OPAL_SUCCESS)
 		prlog(PR_ERR, "%s: [Loc: %s] P:%d 0x%08x=0x%016llx\n",
-		      unit, loc, this_cpu()->chip_id, *scoms, value);
+		      unit, loc, flat_chip_id, *scoms, value);
@@ -691,13 +691,13 @@ static void find_npu2_checkstop_reason(int flat_chip_id,
 		fatal_errors = npu2_fir & ~npu2_fir_mask & npu2_fir_action0 & npu2_fir_action1;
 		if (fatal_errors) {
-			loc = chip_loc_code(this_cpu()->chip_id);
+			loc = chip_loc_code(flat_chip_id);
 			if (!loc)
 				loc = "Not Available";
 			prlog(PR_ERR, "NPU2: [Loc: %s] P:%d FIR#%d FIR 0x%016llx mask 0x%016llx\n",
-					loc, this_cpu()->chip_id, i, npu2_fir, npu2_fir_mask);
+					loc, flat_chip_id, i, npu2_fir, npu2_fir_mask);
 			prlog(PR_ERR, "NPU2: [Loc: %s] P:%d ACTION0 0x%016llx, ACTION1 0x%016llx\n",
-					loc, this_cpu()->chip_id, npu2_fir_action0, npu2_fir_action1);
+					loc, flat_chip_id, npu2_fir_action0, npu2_fir_action1);

More information about the Skiboot mailing list