diff mbox series

powerpc/pseries: fix max polling time in plpks_confirm_object_flushed() function

Message ID 20240304065326.787453-1-nayna@linux.ibm.com (mailing list archive)
State New
Headers show
Series powerpc/pseries: fix max polling time in plpks_confirm_object_flushed() function | expand

Checks

Context Check Description
snowpatch_ozlabs/github-powerpc_ppctests success Successfully ran 8 jobs.
snowpatch_ozlabs/github-powerpc_selftests success Successfully ran 8 jobs.
snowpatch_ozlabs/github-powerpc_sparse success Successfully ran 4 jobs.
snowpatch_ozlabs/github-powerpc_clang success Successfully ran 6 jobs.
snowpatch_ozlabs/github-powerpc_kernel_qemu success Successfully ran 23 jobs.

Commit Message

Nayna Jain March 4, 2024, 6:53 a.m. UTC
usleep_range() function takes input time and range in usec. However,
currently it is assumed in msec in the function
plpks_confirm_object_flushed().

Fix the total polling time for the object flushing from 5msec to 5sec.

Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Fixes: 2454a7af0f2a ("powerpc/pseries: define driver for Platform KeyStore")
Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
---
 arch/powerpc/include/asm/plpks.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Christophe Leroy March 4, 2024, 6:16 p.m. UTC | #1
Le 04/03/2024 à 07:53, Nayna Jain a écrit :
> [Vous ne recevez pas souvent de courriers de nayna@linux.ibm.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> 
> usleep_range() function takes input time and range in usec. However,
> currently it is assumed in msec in the function
> plpks_confirm_object_flushed().
> 
> Fix the total polling time for the object flushing from 5msec to 5sec.

I understand when 5000 msec becomes 5000000 usec.

But why does 10 msec becomes 5000 usec ?

Why does 400 becomes 5000 ?

Christophe

> 
> Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
> Fixes: 2454a7af0f2a ("powerpc/pseries: define driver for Platform KeyStore")
> Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
> Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
> ---
>   arch/powerpc/include/asm/plpks.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/plpks.h b/arch/powerpc/include/asm/plpks.h
> index 23b77027c916..8721d97f32c1 100644
> --- a/arch/powerpc/include/asm/plpks.h
> +++ b/arch/powerpc/include/asm/plpks.h
> @@ -44,9 +44,9 @@
>   #define PLPKS_MAX_DATA_SIZE            4000
> 
>   // Timeouts for PLPKS operations
> -#define PLPKS_MAX_TIMEOUT              5000 // msec
> -#define PLPKS_FLUSH_SLEEP              10 // msec
> -#define PLPKS_FLUSH_SLEEP_RANGE                400
> +#define PLPKS_MAX_TIMEOUT              5000000 // usec
> +#define PLPKS_FLUSH_SLEEP              5000 // usec
> +#define PLPKS_FLUSH_SLEEP_RANGE                5000
> 
>   struct plpks_var {
>          char *component;
> --
> 2.31.1
>
Michael Ellerman March 5, 2024, 12:21 a.m. UTC | #2
Nayna Jain <nayna@linux.ibm.com> writes:
> usleep_range() function takes input time and range in usec. However,
> currently it is assumed in msec in the function
> plpks_confirm_object_flushed().
>
> Fix the total polling time for the object flushing from 5msec to 5sec.
>
> Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
> Fixes: 2454a7af0f2a ("powerpc/pseries: define driver for Platform KeyStore")
> Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
> Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
> ---
>  arch/powerpc/include/asm/plpks.h | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/plpks.h b/arch/powerpc/include/asm/plpks.h
> index 23b77027c916..8721d97f32c1 100644
> --- a/arch/powerpc/include/asm/plpks.h
> +++ b/arch/powerpc/include/asm/plpks.h
> @@ -44,9 +44,9 @@
>  #define PLPKS_MAX_DATA_SIZE		4000
>  
>  // Timeouts for PLPKS operations
> -#define PLPKS_MAX_TIMEOUT		5000 // msec
> -#define PLPKS_FLUSH_SLEEP		10 // msec
> -#define PLPKS_FLUSH_SLEEP_RANGE		400
> +#define PLPKS_MAX_TIMEOUT		5000000 // usec
> +#define PLPKS_FLUSH_SLEEP		5000 // usec
> +#define PLPKS_FLUSH_SLEEP_RANGE		5000

It would be simpler if you used fsleep, eg:

diff --git a/arch/powerpc/include/asm/plpks.h b/arch/powerpc/include/asm/plpks.h
index 23b77027c916..b2d419eff9cd 100644
--- a/arch/powerpc/include/asm/plpks.h
+++ b/arch/powerpc/include/asm/plpks.h
@@ -44,9 +44,8 @@
 #define PLPKS_MAX_DATA_SIZE		4000
 
 // Timeouts for PLPKS operations
-#define PLPKS_MAX_TIMEOUT		5000 // msec
-#define PLPKS_FLUSH_SLEEP		10 // msec
-#define PLPKS_FLUSH_SLEEP_RANGE		400
+#define PLPKS_MAX_TIMEOUT		5 * USEC_PER_SEC
+#define PLPKS_FLUSH_SLEEP		10000 // usec
 
 struct plpks_var {
 	char *component;
diff --git a/arch/powerpc/platforms/pseries/plpks.c b/arch/powerpc/platforms/pseries/plpks.c
index febe18f251d0..bcfcd5acc5c2 100644
--- a/arch/powerpc/platforms/pseries/plpks.c
+++ b/arch/powerpc/platforms/pseries/plpks.c
@@ -415,8 +415,7 @@ static int plpks_confirm_object_flushed(struct label *label,
 			break;
 		}
 
-		usleep_range(PLPKS_FLUSH_SLEEP,
-			     PLPKS_FLUSH_SLEEP + PLPKS_FLUSH_SLEEP_RANGE);
+		fsleep(PLPKS_FLUSH_SLEEP);
 		timeout = timeout + PLPKS_FLUSH_SLEEP;
 	} while (timeout < PLPKS_MAX_TIMEOUT);
 


cheers
diff mbox series

Patch

diff --git a/arch/powerpc/include/asm/plpks.h b/arch/powerpc/include/asm/plpks.h
index 23b77027c916..8721d97f32c1 100644
--- a/arch/powerpc/include/asm/plpks.h
+++ b/arch/powerpc/include/asm/plpks.h
@@ -44,9 +44,9 @@ 
 #define PLPKS_MAX_DATA_SIZE		4000
 
 // Timeouts for PLPKS operations
-#define PLPKS_MAX_TIMEOUT		5000 // msec
-#define PLPKS_FLUSH_SLEEP		10 // msec
-#define PLPKS_FLUSH_SLEEP_RANGE		400
+#define PLPKS_MAX_TIMEOUT		5000000 // usec
+#define PLPKS_FLUSH_SLEEP		5000 // usec
+#define PLPKS_FLUSH_SLEEP_RANGE		5000
 
 struct plpks_var {
 	char *component;