]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/crypto: Extend protected key conversion retry loop
authorHarald Freudenberger <freude@linux.ibm.com>
Wed, 21 May 2025 08:01:18 +0000 (10:01 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 21 May 2025 10:02:27 +0000 (12:02 +0200)
CI runs show that the protected key conversion retry loop
runs into timeout if a master key change was initiated on
the addressed crypto resource shortly before the conversion
request.

This patch extends the retry logic to run in total 5 attempts
with increasing delay (200, 400, 800 and 1600 ms) in case of
a busy card.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/crypto/paes_s390.c

index 47f5ce7904f873c9070103e9d645f4317d39f15f..8a340c16acb46a51222d8f8a9008f86b60ec910b 100644 (file)
@@ -199,8 +199,11 @@ static inline int convert_key(const u8 *key, unsigned int keylen,
 
        pk->len = sizeof(pk->protkey);
 
-       /* try three times in case of busy card */
-       for (rc = -EIO, i = 0; rc && i < 3; i++) {
+       /*
+        * In case of a busy card retry with increasing delay
+        * of 200, 400, 800 and 1600 ms - in total 3 s.
+        */
+       for (rc = -EIO, i = 0; rc && i < 5; i++) {
                if (rc == -EBUSY && msleep_interruptible((1 << i) * 100)) {
                        rc = -EINTR;
                        goto out;