Patch "powerpc/pseries/dlpar: handle ibm, configure-connector delay status" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc/pseries/dlpar: handle ibm, configure-connector delay status

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-pseries-dlpar-handle-ibm-configure-connector.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f3478775acc8266f0913c3a41e9b2ca9366ae86c
Author: Nathan Lynch <nathanl@xxxxxxxxxxxxx>
Date:   Wed Jan 6 20:59:00 2021 -0600

    powerpc/pseries/dlpar: handle ibm, configure-connector delay status
    
    [ Upstream commit 768d70e19ba525debd571b36e6d0ab19956c63d7 ]
    
    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 <nathanl@xxxxxxxxxxxxx>
    Reviewed-by: Tyrel Datwyler <tyreld@xxxxxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20210107025900.410369-1-nathanl@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
index 16e86ba8aa209..f6b7749d6ada7 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:



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux