powerpc/pseries: Remove call to memblock_add()
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 <nfont@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
ec99907244
commit
fdb4f6e99f
@ -588,36 +588,11 @@ static int dlpar_memory_remove_by_index(u32 drc_index, struct property *prop)
|
|||||||
|
|
||||||
#endif /* CONFIG_MEMORY_HOTREMOVE */
|
#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;
|
unsigned long block_sz;
|
||||||
int nid, rc;
|
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)
|
if (lmb->flags & DRCONF_MEM_ASSIGNED)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
@ -633,10 +608,18 @@ static int dlpar_add_lmb(struct of_drconf_cell *lmb)
|
|||||||
return rc;
|
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) {
|
if (rc) {
|
||||||
dlpar_remove_device_tree_lmb(lmb);
|
dlpar_remove_device_tree_lmb(lmb);
|
||||||
dlpar_release_drc(lmb->drc_index);
|
dlpar_release_drc(lmb->drc_index);
|
||||||
|
} else {
|
||||||
|
lmb->flags |= DRCONF_MEM_ASSIGNED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
|
Loading…
Reference in New Issue
Block a user