linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/pserie: Use lmb_is_removable() to check removability
@ 2016-11-28 16:50 Nathan Fontenot
  2016-12-03 11:28 ` Michael Ellerman
  0 siblings, 1 reply; 2+ messages in thread
From: Nathan Fontenot @ 2016-11-28 16:50 UTC (permalink / raw)
  To: linuxppc-dev

We should be using lmb_is_removable() to validate that enough LMBs
are available to remove when doing a remove by count. This will check
that the LMB is owned by the system and it is considered removable.
This patch also adds a pr_info() notification to report the LMB count
to remove was not satisfied.

What we do now is just check that there are enough LMBs owned by the
system when validating there are enough LMBs to remove. This can
lead to situations where there are enough LMBs owned by the system
but not enough that are considered removable. This results in having
to bail out of the remove operation instead of just failing the request
that we should have known wouldn't succeed.

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

diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 76ec104..2617f9f 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -472,12 +472,15 @@ static int dlpar_memory_remove_by_count(u32 lmbs_to_remove,
 
 	/* Validate that there are enough LMBs to satisfy the request */
 	for (i = 0; i < num_lmbs; i++) {
-		if (lmbs[i].flags & DRCONF_MEM_ASSIGNED)
+		if (lmb_is_removable(&lmbs[i]))
 			lmbs_available++;
 	}
 
-	if (lmbs_available < lmbs_to_remove)
+	if (lmbs_available < lmbs_to_remove) {
+		pr_info("Not enough LMBs available (%d of %d) to satisfy request\n",
+			lmbs_available, lmbs_to_remove);
 		return -EINVAL;
+	}
 
 	for (i = 0; i < num_lmbs && lmbs_removed < lmbs_to_remove; i++) {
 		rc = dlpar_remove_lmb(&lmbs[i]);

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: powerpc/pserie: Use lmb_is_removable() to check removability
  2016-11-28 16:50 [PATCH] powerpc/pserie: Use lmb_is_removable() to check removability Nathan Fontenot
@ 2016-12-03 11:28 ` Michael Ellerman
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Ellerman @ 2016-12-03 11:28 UTC (permalink / raw)
  To: Nathan Fontenot, linuxppc-dev

On Mon, 2016-11-28 at 16:50:45 UTC, Nathan Fontenot wrote:
> We should be using lmb_is_removable() to validate that enough LMBs
> are available to remove when doing a remove by count. This will check
> that the LMB is owned by the system and it is considered removable.
> This patch also adds a pr_info() notification to report the LMB count
> to remove was not satisfied.
> 
> What we do now is just check that there are enough LMBs owned by the
> system when validating there are enough LMBs to remove. This can
> lead to situations where there are enough LMBs owned by the system
> but not enough that are considered removable. This results in having
> to bail out of the remove operation instead of just failing the request
> that we should have known wouldn't succeed.
> 
> Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/2db029ef58ab7c47cecab5fe73fa6e

cheers

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-12-03 11:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-28 16:50 [PATCH] powerpc/pserie: Use lmb_is_removable() to check removability Nathan Fontenot
2016-12-03 11:28 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).