dm integrity: don't use drivers that have CRYPTO_ALG_ALLOCATES_MEMORY
authorMikulas Patocka <mpatocka@redhat.com>
Thu, 15 Oct 2020 17:21:44 +0000 (13:21 -0400)
committerMike Snitzer <snitzer@redhat.com>
Tue, 17 Nov 2020 15:45:06 +0000 (10:45 -0500)
Don't use crypto drivers that have the flag CRYPTO_ALG_ALLOCATES_MEMORY
set. These drivers allocate memory and thus they are not suitable for
block I/O processing.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-integrity.c

index 3fc3757..5a7a1b9 100644 (file)
@@ -3462,7 +3462,7 @@ static int get_mac(struct crypto_shash **hash, struct alg_spec *a, char **error,
        int r;
 
        if (a->alg_string) {
-               *hash = crypto_alloc_shash(a->alg_string, 0, 0);
+               *hash = crypto_alloc_shash(a->alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY);
                if (IS_ERR(*hash)) {
                        *error = error_alg;
                        r = PTR_ERR(*hash);
@@ -3519,7 +3519,7 @@ static int create_journal(struct dm_integrity_c *ic, char **error)
                struct journal_completion comp;
 
                comp.ic = ic;
-               ic->journal_crypt = crypto_alloc_skcipher(ic->journal_crypt_alg.alg_string, 0, 0);
+               ic->journal_crypt = crypto_alloc_skcipher(ic->journal_crypt_alg.alg_string, 0, CRYPTO_ALG_ALLOCATES_MEMORY);
                if (IS_ERR(ic->journal_crypt)) {
                        *error = "Invalid journal cipher";
                        r = PTR_ERR(ic->journal_crypt);