Nathan Lynch <nath...@linux.ibm.com> writes:
> 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: ab519a011caa ("powerpc/pseries: Kernel DLPAR Infrastructure")
> Signed-off-by: Nathan Lynch <nath...@linux.ibm.com>

Just following up and adding some people to cc in hopes of getting some
review for this.


> ---
>  arch/powerpc/platforms/pseries/dlpar.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/platforms/pseries/dlpar.c 
> b/arch/powerpc/platforms/pseries/dlpar.c
> index 16e86ba8aa20..f6b7749d6ada 100644
> --- a/arch/powerpc/platforms/pseries/dlpar.c
> +++ b/arch/powerpc/platforms/pseries/dlpar.c
> @@ -127,7 +127,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,
> @@ -168,6 +167,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;
> @@ -216,9 +218,6 @@ struct device_node *dlpar_configure_connector(__be32 
> drc_index,
>                       last_dn = last_dn->parent;
>                       break;
>  
> -             case CALL_AGAIN:
> -                     break;
> -
>               case MORE_MEMORY:
>               case ERR_CFG_USE:
>               default:
> -- 
> 2.29.2

Reply via email to