powerpc/pseries: Remove call to memblock_add()
[cascardo/linux.git] / arch / powerpc / platforms / pseries / hotplug-memory.c
index 8baad18..43f7beb 100644 (file)
@@ -588,36 +588,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;
 
@@ -633,10 +608,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;