The call to memblock_add is not needed, this is already done by
memory_add(). This patch removes this call which shrinks
dlpar_add_lmb_memory() enough that it can be merged into dlpar_add_lmb().

Signed-off-by: Nathan Fontenot <nf...@linux.vnet.ibm.com>
---
 arch/powerpc/platforms/pseries/hotplug-memory.c |   37 ++++++-----------------
 1 file changed, 10 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c 
b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 076cd7e..43c8691 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -533,36 +533,11 @@ static int dlpar_memory_remove_by_index(u32 drc_index, 
struct property *prop)
 
 #endif /* CONFIG_MEMORY_HOTREMOVE */
 
-static int dlpar_add_lmb_memory(struct of_drconf_cell *lmb)
+static int dlpar_add_lmb(struct of_drconf_cell *lmb)
 {
        unsigned long block_sz;
        int nid, rc;
 
-       block_sz = memory_block_size_bytes();
-
-       /* Find the node id for this address */
-       nid = memory_add_physaddr_to_nid(lmb->base_addr);
-
-       /* Add the memory */
-       rc = add_memory(nid, lmb->base_addr, block_sz);
-       if (rc)
-               return rc;
-
-       /* Register this block of memory */
-       rc = memblock_add(lmb->base_addr, block_sz);
-       if (rc) {
-               remove_memory(nid, lmb->base_addr, block_sz);
-               return rc;
-       }
-
-       lmb->flags |= DRCONF_MEM_ASSIGNED;
-       return 0;
-}
-
-static int dlpar_add_lmb(struct of_drconf_cell *lmb)
-{
-       int rc;
-
        if (lmb->flags & DRCONF_MEM_ASSIGNED)
                return -EINVAL;
 
@@ -578,10 +553,18 @@ static int dlpar_add_lmb(struct of_drconf_cell *lmb)
                return rc;
        }
 
-       rc = dlpar_add_lmb_memory(lmb);
+       block_sz = memory_block_size_bytes();
+
+       /* Find the node id for this address */
+       nid = memory_add_physaddr_to_nid(lmb->base_addr);
+
+       /* Add the memory */
+       rc = add_memory(nid, lmb->base_addr, block_sz);
        if (rc) {
                dlpar_remove_device_tree_lmb(lmb);
                dlpar_release_drc(lmb->drc_index);
+       } else {
+               lmb->flags |= DRCONF_MEM_ASSIGNED;
        }
 
        return rc;

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to