Patch "crypto: api - Fix boot-up self-test race" has been added to the 6.12-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

    crypto: api - Fix boot-up self-test race

to the 6.12-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:
     crypto-api-fix-boot-up-self-test-race.patch
and it can be found in the queue-6.12 subdirectory.

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



commit bfd2469fae2efaef22bb94c8ec30f7e619a1bf53
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date:   Fri Nov 15 09:29:02 2024 +0800

    crypto: api - Fix boot-up self-test race
    
    [ Upstream commit 8dd458cbc5be9ce4427ffce7a9dcdbff4dfc4ac9 ]
    
    During the boot process self-tests are postponed so that all
    algorithms are registered when the test starts.  In the event
    that algorithms are still being registered during these tests,
    which can occur either because the algorithm is registered at
    late_initcall, or because a self-test itself triggers the creation
    of an instance, some self-tests may never start at all.
    
    Fix this by setting the flag at the start of crypto_start_tests.
    
    Note that this race is theoretical and has never been observed
    in practice.
    
    Fixes: adad556efcdd ("crypto: api - Fix built-in testing dependency failures")
    Signed-off-by: Herbert Xu <herbert.xu@xxxxxxxxxx>
    Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/crypto/algapi.c b/crypto/algapi.c
index 004d27e41315f..c067412d909a1 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -1022,6 +1022,8 @@ static void __init crypto_start_tests(void)
 	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS))
 		return;
 
+	set_crypto_boot_test_finished();
+
 	for (;;) {
 		struct crypto_larval *larval = NULL;
 		struct crypto_alg *q;
@@ -1053,8 +1055,6 @@ static void __init crypto_start_tests(void)
 		if (!larval)
 			break;
 	}
-
-	set_crypto_boot_test_finished();
 }
 
 static int __init crypto_algapi_init(void)




[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