powerpc/pseries/memhp: Log more error conditions in add path
authorNathan Lynch <nathanl@linux.ibm.com>
Tue, 14 Nov 2023 17:01:55 +0000 (11:01 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 1 Dec 2023 10:15:34 +0000 (21:15 +1100)
When an add operation for multiple LMBs fails, there is currently
little indication from the kernel of what went wrong. Be a little more
verbose about error conditions in the add paths.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231114-pseries-memhp-fixes-v1-3-fb8f2bb7c557@linux.ibm.com
arch/powerpc/platforms/pseries/hotplug-memory.c

index 6f2eebae7bee950ddc999bc2fbd862975b96954d..3fe3ddb30c04b45f10b5ed0a4fefaac621297e73 100644 (file)
@@ -208,8 +208,10 @@ static int dlpar_change_lmb_state(struct drmem_lmb *lmb, bool online)
        int rc;
 
        mem_block = lmb_to_memblock(lmb);
-       if (!mem_block)
+       if (!mem_block) {
+               pr_err("Failed memory block lookup for LMB 0x%x\n", lmb->drc_index);
                return -EINVAL;
+       }
 
        if (online && mem_block->dev.offline)
                rc = device_online(&mem_block->dev);
@@ -576,6 +578,7 @@ static int dlpar_add_lmb(struct drmem_lmb *lmb)
        rc = update_lmb_associativity_index(lmb);
        if (rc) {
                dlpar_release_drc(lmb->drc_index);
+               pr_err("Failed to configure LMB 0x%x\n", lmb->drc_index);
                return rc;
        }
 
@@ -589,12 +592,14 @@ static int dlpar_add_lmb(struct drmem_lmb *lmb)
        /* Add the memory */
        rc = __add_memory(nid, lmb->base_addr, block_sz, MHP_MEMMAP_ON_MEMORY);
        if (rc) {
+               pr_err("Failed to add LMB 0x%x to node %u", lmb->drc_index, nid);
                invalidate_lmb_associativity_index(lmb);
                return rc;
        }
 
        rc = dlpar_online_lmb(lmb);
        if (rc) {
+               pr_err("Failed to online LMB 0x%x on node %u\n", lmb->drc_index, nid);
                __remove_memory(lmb->base_addr, block_sz);
                invalidate_lmb_associativity_index(lmb);
        } else {