powerpc/pseries: Don't attempt to acquire drc during memory hot add for assigned lmbs
Check if an LMB is assigned before attempting to call dlpar_acquire_drc in order to avoid any unnecessary rtas calls. This substantially reduces the running time of memory hot add on lpars with large amounts of memory. [mpe: We need to explicitly set rc to 0 in the success case, otherwise the compiler might think we use rc without initialising it.] Fixes: c21f515c7436 ("powerpc/pseries: Make the acquire/release of the drc for memory a seperate step") Cc: stable@vger.kernel.org # v4.11+ Signed-off-by: John Allen <jallen@linux.vnet.ibm.com> Reviewed-by: Nathan Fontenot <nfont@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
7def9a2418
commit
afb5519fdb
@ -828,6 +828,9 @@ static int dlpar_memory_add_by_count(u32 lmbs_to_add, struct property *prop)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < num_lmbs && lmbs_to_add != lmbs_added; i++) {
|
||||
if (lmbs[i].flags & DRCONF_MEM_ASSIGNED)
|
||||
continue;
|
||||
|
||||
rc = dlpar_acquire_drc(lmbs[i].drc_index);
|
||||
if (rc)
|
||||
continue;
|
||||
@ -870,6 +873,7 @@ static int dlpar_memory_add_by_count(u32 lmbs_to_add, struct property *prop)
|
||||
lmbs[i].base_addr, lmbs[i].drc_index);
|
||||
lmbs[i].reserved = 0;
|
||||
}
|
||||
rc = 0;
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
Loading…
x
Reference in New Issue
Block a user