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.

Signed-off-by: John Allen <jal...@linux.vnet.ibm.com>
---
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c 
b/arch/powerpc/platforms/pseries/hotplug-memory.c
index ca9b2f4..95cf2ff 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -817,6 +817,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;

Reply via email to