Skip to content

Commit

Permalink
powerpc/pseries/dlpar: handle ibm, configure-connector delay status
Browse files Browse the repository at this point in the history
[ Upstream commit 768d70e ]

dlpar_configure_connector() has two problems in its handling of
ibm,configure-connector's return status:

1. When the status is -2 (busy, call again), we call
   ibm,configure-connector again immediately without checking whether
   to schedule, which can result in monopolizing the CPU.
2. Extended delay status (9900..9905) goes completely unhandled,
   causing the configuration to unnecessarily terminate.

Fix both of these issues by using rtas_busy_delay().

Fixes: ab519a0 ("powerpc/pseries: Kernel DLPAR Infrastructure")
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Tyrel Datwyler <tyreld@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210107025900.410369-1-nathanl@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
nathanlynch authored and gregkh committed Mar 3, 2021
1 parent 3d52ca4 commit fdbb2f1
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions arch/powerpc/platforms/pseries/dlpar.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ void dlpar_free_cc_nodes(struct device_node *dn)
#define NEXT_PROPERTY 3
#define PREV_PARENT 4
#define MORE_MEMORY 5
#define CALL_AGAIN -2
#define ERR_CFG_USE -9003

struct device_node *dlpar_configure_connector(__be32 drc_index,
Expand Down Expand Up @@ -181,6 +180,9 @@ struct device_node *dlpar_configure_connector(__be32 drc_index,

spin_unlock(&rtas_data_buf_lock);

if (rtas_busy_delay(rc))
continue;

switch (rc) {
case COMPLETE:
break;
Expand Down Expand Up @@ -233,9 +235,6 @@ struct device_node *dlpar_configure_connector(__be32 drc_index,
parent_path = last_dn->parent->full_name;
break;

case CALL_AGAIN:
break;

case MORE_MEMORY:
case ERR_CFG_USE:
default:
Expand Down

0 comments on commit fdbb2f1

Please sign in to comment.