Hi Maddy, Madhavan Srinivasan <ma...@linux.vnet.ibm.com> writes: > diff --git a/arch/powerpc/platforms/powernv/opal-imc.c > b/arch/powerpc/platforms/powernv/opal-imc.c > index 186109bdd41b..e04b20625cb9 100644 > --- a/arch/powerpc/platforms/powernv/opal-imc.c > +++ b/arch/powerpc/platforms/powernv/opal-imc.c > @@ -69,20 +69,20 @@ static void export_imc_mode_and_cmd(struct device_node > *node, > if (of_property_read_u32(node, "cb_offset", &cb_offset)) > cb_offset = IMC_CNTL_BLK_OFFSET; > > - for_each_node(nid) { > - loc = (u64)(pmu_ptr->mem_info[chip].vbase) + cb_offset; > + while (ptr->vbase != NULL) {
This means you'll bail out as soon as you find a node with no vbase, but it's possible we could have a CPU-less node intermingled with other nodes. So I think you want to keep the for loop, but continue if you see a NULL vbase? > + loc = (u64)(ptr->vbase) + cb_offset; > imc_mode_addr = (u64 *)(loc + IMC_CNTL_BLK_MODE_OFFSET); > - sprintf(mode, "imc_mode_%d", nid); > + sprintf(mode, "imc_mode_%d", (u32)(ptr->id)); > if (!imc_debugfs_create_x64(mode, 0600, imc_debugfs_parent, > imc_mode_addr)) > goto err; > > imc_cmd_addr = (u64 *)(loc + IMC_CNTL_BLK_CMD_OFFSET); > - sprintf(cmd, "imc_cmd_%d", nid); > + sprintf(cmd, "imc_cmd_%d", (u32)(ptr->id)); > if (!imc_debugfs_create_x64(cmd, 0600, imc_debugfs_parent, > imc_cmd_addr)) > goto err; > - chip++; > + ptr++; > } > return; cheers