powerpc/pseries/dlpar: use rtas_get_sensor()
authorNathan Lynch <nathanl@linux.ibm.com>
Tue, 4 May 2021 02:53:29 +0000 (21:53 -0500)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 25 Jun 2021 04:47:20 +0000 (14:47 +1000)
Instead of making bare calls to get-sensor-state, use
rtas_get_sensor(), which correctly handles busy and extended delay
statuses.

Fixes: ab519a011caa ("powerpc/pseries: Kernel DLPAR Infrastructure")
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210504025329.1713878-1-nathanl@linux.ibm.com
arch/powerpc/platforms/pseries/dlpar.c

index 3ac70790ec7aa54a2f15418b989b3436dbbafe06..b1f01ac0c29e3f670a386c1d43b7c2a6054907d0 100644 (file)
@@ -289,8 +289,7 @@ int dlpar_acquire_drc(u32 drc_index)
 {
        int dr_status, rc;
 
-       rc = rtas_call(rtas_token("get-sensor-state"), 2, 2, &dr_status,
-                      DR_ENTITY_SENSE, drc_index);
+       rc = rtas_get_sensor(DR_ENTITY_SENSE, drc_index, &dr_status);
        if (rc || dr_status != DR_ENTITY_UNUSABLE)
                return -1;
 
@@ -311,8 +310,7 @@ int dlpar_release_drc(u32 drc_index)
 {
        int dr_status, rc;
 
-       rc = rtas_call(rtas_token("get-sensor-state"), 2, 2, &dr_status,
-                      DR_ENTITY_SENSE, drc_index);
+       rc = rtas_get_sensor(DR_ENTITY_SENSE, drc_index, &dr_status);
        if (rc || dr_status != DR_ENTITY_PRESENT)
                return -1;
 
@@ -333,8 +331,7 @@ int dlpar_unisolate_drc(u32 drc_index)
 {
        int dr_status, rc;
 
-       rc = rtas_call(rtas_token("get-sensor-state"), 2, 2, &dr_status,
-                               DR_ENTITY_SENSE, drc_index);
+       rc = rtas_get_sensor(DR_ENTITY_SENSE, drc_index, &dr_status);
        if (rc || dr_status != DR_ENTITY_PRESENT)
                return -1;