]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
crypto: drivers - set the flag CRYPTO_ALG_ALLOCATES_MEMORY
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 10 Jul 2020 06:20:41 +0000 (23:20 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 16 Jul 2020 11:49:10 +0000 (21:49 +1000)
Set the flag CRYPTO_ALG_ALLOCATES_MEMORY in the crypto drivers that
allocate memory.

drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c: sun8i_ce_cipher
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c: sun8i_ss_cipher
drivers/crypto/amlogic/amlogic-gxl-core.c: meson_cipher
drivers/crypto/axis/artpec6_crypto.c: artpec6_crypto_common_init
drivers/crypto/bcm/cipher.c: spu_skcipher_rx_sg_create
drivers/crypto/caam/caamalg.c: aead_edesc_alloc
drivers/crypto/caam/caamalg_qi.c: aead_edesc_alloc
drivers/crypto/caam/caamalg_qi2.c: aead_edesc_alloc
drivers/crypto/caam/caamhash.c: hash_digest_key
drivers/crypto/cavium/cpt/cptvf_algs.c: process_request
drivers/crypto/cavium/nitrox/nitrox_aead.c: nitrox_process_se_request
drivers/crypto/cavium/nitrox/nitrox_skcipher.c: nitrox_process_se_request
drivers/crypto/ccp/ccp-crypto-aes-cmac.c: ccp_do_cmac_update
drivers/crypto/ccp/ccp-crypto-aes-galois.c: ccp_crypto_enqueue_request
drivers/crypto/ccp/ccp-crypto-aes-xts.c: ccp_crypto_enqueue_request
drivers/crypto/ccp/ccp-crypto-aes.c: ccp_crypto_enqueue_request
drivers/crypto/ccp/ccp-crypto-des3.c: ccp_crypto_enqueue_request
drivers/crypto/ccp/ccp-crypto-sha.c: ccp_crypto_enqueue_request
drivers/crypto/chelsio/chcr_algo.c: create_cipher_wr
drivers/crypto/hisilicon/sec/sec_algs.c: sec_alloc_and_fill_hw_sgl
drivers/crypto/hisilicon/sec2/sec_crypto.c: sec_alloc_req_id
drivers/crypto/inside-secure/safexcel_cipher.c: safexcel_queue_req
drivers/crypto/inside-secure/safexcel_hash.c: safexcel_ahash_enqueue
drivers/crypto/ixp4xx_crypto.c: ablk_perform
drivers/crypto/marvell/cesa/cipher.c: mv_cesa_skcipher_dma_req_init
drivers/crypto/marvell/cesa/hash.c: mv_cesa_ahash_dma_req_init
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c: create_ctx_hdr
drivers/crypto/n2_core.c: n2_compute_chunks
drivers/crypto/picoxcell_crypto.c: spacc_sg_to_ddt
drivers/crypto/qat/qat_common/qat_algs.c: qat_alg_skcipher_encrypt
drivers/crypto/qce/skcipher.c: qce_skcipher_async_req_handle
drivers/crypto/talitos.c : talitos_edesc_alloc
drivers/crypto/virtio/virtio_crypto_algs.c: __virtio_crypto_skcipher_do_req
drivers/crypto/xilinx/zynqmp-aes-gcm.c: zynqmp_aes_aead_cipher

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
[EB: avoid overly-long lines]
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
34 files changed:
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c
drivers/crypto/amlogic/amlogic-gxl-core.c
drivers/crypto/axis/artpec6_crypto.c
drivers/crypto/bcm/cipher.c
drivers/crypto/caam/caamalg.c
drivers/crypto/caam/caamalg_qi.c
drivers/crypto/caam/caamalg_qi2.c
drivers/crypto/caam/caamhash.c
drivers/crypto/cavium/cpt/cptvf_algs.c
drivers/crypto/cavium/nitrox/nitrox_aead.c
drivers/crypto/cavium/nitrox/nitrox_skcipher.c
drivers/crypto/ccp/ccp-crypto-aes-cmac.c
drivers/crypto/ccp/ccp-crypto-aes-galois.c
drivers/crypto/ccp/ccp-crypto-aes-xts.c
drivers/crypto/ccp/ccp-crypto-aes.c
drivers/crypto/ccp/ccp-crypto-des3.c
drivers/crypto/ccp/ccp-crypto-sha.c
drivers/crypto/chelsio/chcr_algo.c
drivers/crypto/hisilicon/sec/sec_algs.c
drivers/crypto/hisilicon/sec2/sec_crypto.c
drivers/crypto/inside-secure/safexcel_cipher.c
drivers/crypto/inside-secure/safexcel_hash.c
drivers/crypto/ixp4xx_crypto.c
drivers/crypto/marvell/cesa/cipher.c
drivers/crypto/marvell/cesa/hash.c
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c
drivers/crypto/n2_core.c
drivers/crypto/picoxcell_crypto.c
drivers/crypto/qat/qat_common/qat_algs.c
drivers/crypto/qce/skcipher.c
drivers/crypto/talitos.c
drivers/crypto/virtio/virtio_crypto_algs.c
drivers/crypto/xilinx/zynqmp-aes-gcm.c

index b957061424a1f735f6640ed6919e766851c5298d..138759dc8190e93b62947511f24aef13d88ca276 100644 (file)
@@ -185,7 +185,8 @@ static struct sun8i_ce_alg_template ce_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -211,7 +212,8 @@ static struct sun8i_ce_alg_template ce_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -236,7 +238,8 @@ static struct sun8i_ce_alg_template ce_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -262,7 +265,8 @@ static struct sun8i_ce_alg_template ce_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
index 5d9d0fedcb0689cfad429b909b01328c4dc0a889..9a23515783a6cdae74b3a76760032ea8bd05432e 100644 (file)
@@ -169,7 +169,8 @@ static struct sun8i_ss_alg_template ss_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -195,7 +196,8 @@ static struct sun8i_ss_alg_template ss_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -220,7 +222,8 @@ static struct sun8i_ss_alg_template ss_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -246,7 +249,8 @@ static struct sun8i_ss_alg_template ss_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct sun8i_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
index 411857fad8ba60ca9f6aba973d05e426a51b2197..466552acbbbb0609425c91bbc92dd81559eafb95 100644 (file)
@@ -54,7 +54,8 @@ static struct meson_alg_template mc_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct meson_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
@@ -79,7 +80,8 @@ static struct meson_alg_template mc_algs[] = {
                        .cra_priority = 400,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_flags = CRYPTO_ALG_TYPE_SKCIPHER |
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                               CRYPTO_ALG_NEED_FALLBACK,
                        .cra_ctxsize = sizeof(struct meson_cipher_tfm_ctx),
                        .cra_module = THIS_MODULE,
                        .cra_alignmask = 0xf,
index 62ba0325a61871f7827540ac0cef61b07f3974b0..1a46eeddf0824249128506fd90e8719054973ac4 100644 (file)
@@ -2630,7 +2630,8 @@ static struct ahash_alg hash_algos[] = {
                        .cra_name = "sha1",
                        .cra_driver_name = "artpec-sha1",
                        .cra_priority = 300,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = SHA1_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct artpec6_hashalg_context),
                        .cra_alignmask = 3,
@@ -2653,7 +2654,8 @@ static struct ahash_alg hash_algos[] = {
                        .cra_name = "sha256",
                        .cra_driver_name = "artpec-sha256",
                        .cra_priority = 300,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = SHA256_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct artpec6_hashalg_context),
                        .cra_alignmask = 3,
@@ -2677,7 +2679,8 @@ static struct ahash_alg hash_algos[] = {
                        .cra_name = "hmac(sha256)",
                        .cra_driver_name = "artpec-hmac-sha256",
                        .cra_priority = 300,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = SHA256_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct artpec6_hashalg_context),
                        .cra_alignmask = 3,
@@ -2696,7 +2699,8 @@ static struct skcipher_alg crypto_algos[] = {
                        .cra_name = "ecb(aes)",
                        .cra_driver_name = "artpec6-ecb-aes",
                        .cra_priority = 300,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct artpec6_cryptotfm_context),
                        .cra_alignmask = 3,
@@ -2717,6 +2721,7 @@ static struct skcipher_alg crypto_algos[] = {
                        .cra_driver_name = "artpec6-ctr-aes",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_NEED_FALLBACK,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct artpec6_cryptotfm_context),
@@ -2738,7 +2743,8 @@ static struct skcipher_alg crypto_algos[] = {
                        .cra_name = "cbc(aes)",
                        .cra_driver_name = "artpec6-cbc-aes",
                        .cra_priority = 300,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct artpec6_cryptotfm_context),
                        .cra_alignmask = 3,
@@ -2759,7 +2765,8 @@ static struct skcipher_alg crypto_algos[] = {
                        .cra_name = "xts(aes)",
                        .cra_driver_name = "artpec6-xts-aes",
                        .cra_priority = 300,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct artpec6_cryptotfm_context),
                        .cra_alignmask = 3,
@@ -2790,6 +2797,7 @@ static struct aead_alg aead_algos[] = {
                        .cra_driver_name = "artpec-gcm-aes",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct artpec6_cryptotfm_context),
index a353217a0d33e263ce34285cee88491f629ff325..8a7fa1ae1adecfe74a8c5721c8a4e6e9dd0d085c 100644 (file)
@@ -3233,7 +3233,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(md5),cbc(aes))",
                        .cra_driver_name = "authenc-hmac-md5-cbc-aes-iproc",
                        .cra_blocksize = AES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                .ivsize = AES_BLOCK_SIZE,
@@ -3256,7 +3258,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha1),cbc(aes))",
                        .cra_driver_name = "authenc-hmac-sha1-cbc-aes-iproc",
                        .cra_blocksize = AES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = AES_BLOCK_SIZE,
@@ -3279,7 +3283,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha256),cbc(aes))",
                        .cra_driver_name = "authenc-hmac-sha256-cbc-aes-iproc",
                        .cra_blocksize = AES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = AES_BLOCK_SIZE,
@@ -3302,7 +3308,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(md5),cbc(des))",
                        .cra_driver_name = "authenc-hmac-md5-cbc-des-iproc",
                        .cra_blocksize = DES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES_BLOCK_SIZE,
@@ -3325,7 +3333,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha1),cbc(des))",
                        .cra_driver_name = "authenc-hmac-sha1-cbc-des-iproc",
                        .cra_blocksize = DES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES_BLOCK_SIZE,
@@ -3348,7 +3358,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha224),cbc(des))",
                        .cra_driver_name = "authenc-hmac-sha224-cbc-des-iproc",
                        .cra_blocksize = DES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES_BLOCK_SIZE,
@@ -3371,7 +3383,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha256),cbc(des))",
                        .cra_driver_name = "authenc-hmac-sha256-cbc-des-iproc",
                        .cra_blocksize = DES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES_BLOCK_SIZE,
@@ -3394,7 +3408,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha384),cbc(des))",
                        .cra_driver_name = "authenc-hmac-sha384-cbc-des-iproc",
                        .cra_blocksize = DES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES_BLOCK_SIZE,
@@ -3417,7 +3433,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha512),cbc(des))",
                        .cra_driver_name = "authenc-hmac-sha512-cbc-des-iproc",
                        .cra_blocksize = DES_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES_BLOCK_SIZE,
@@ -3440,7 +3458,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(md5),cbc(des3_ede))",
                        .cra_driver_name = "authenc-hmac-md5-cbc-des3-iproc",
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -3463,7 +3483,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha1),cbc(des3_ede))",
                        .cra_driver_name = "authenc-hmac-sha1-cbc-des3-iproc",
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -3486,7 +3508,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha224),cbc(des3_ede))",
                        .cra_driver_name = "authenc-hmac-sha224-cbc-des3-iproc",
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -3509,7 +3533,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha256),cbc(des3_ede))",
                        .cra_driver_name = "authenc-hmac-sha256-cbc-des3-iproc",
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -3532,7 +3558,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha384),cbc(des3_ede))",
                        .cra_driver_name = "authenc-hmac-sha384-cbc-des3-iproc",
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -3555,7 +3583,9 @@ static struct iproc_alg_s driver_algs[] = {
                        .cra_name = "authenc(hmac(sha512),cbc(des3_ede))",
                        .cra_driver_name = "authenc-hmac-sha512-cbc-des3-iproc",
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ASYNC
+                       .cra_flags = CRYPTO_ALG_NEED_FALLBACK |
+                                    CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY
                 },
                 .setkey = aead_authenc_setkey,
                 .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -3811,7 +3841,8 @@ static struct iproc_alg_s driver_algs[] = {
                                    .cra_name = "md5",
                                    .cra_driver_name = "md5-iproc",
                                    .cra_blocksize = MD5_BLOCK_WORDS * 4,
-                                   .cra_flags = CRYPTO_ALG_ASYNC,
+                                   .cra_flags = CRYPTO_ALG_ASYNC |
+                                                CRYPTO_ALG_ALLOCATES_MEMORY,
                                }
                      },
         .cipher_info = {
@@ -4508,7 +4539,9 @@ static int spu_register_skcipher(struct iproc_alg_s *driver_alg)
        crypto->base.cra_priority = cipher_pri;
        crypto->base.cra_alignmask = 0;
        crypto->base.cra_ctxsize = sizeof(struct iproc_ctx_s);
-       crypto->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       crypto->base.cra_flags = CRYPTO_ALG_ASYNC |
+                                CRYPTO_ALG_ALLOCATES_MEMORY |
+                                CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        crypto->init = skcipher_init_tfm;
        crypto->exit = skcipher_exit_tfm;
@@ -4547,7 +4580,8 @@ static int spu_register_ahash(struct iproc_alg_s *driver_alg)
        hash->halg.base.cra_ctxsize = sizeof(struct iproc_ctx_s);
        hash->halg.base.cra_init = ahash_cra_init;
        hash->halg.base.cra_exit = generic_cra_exit;
-       hash->halg.base.cra_flags = CRYPTO_ALG_ASYNC;
+       hash->halg.base.cra_flags = CRYPTO_ALG_ASYNC |
+                                   CRYPTO_ALG_ALLOCATES_MEMORY;
        hash->halg.statesize = sizeof(struct spu_hash_export_s);
 
        if (driver_alg->auth_info.mode != HASH_MODE_HMAC) {
@@ -4591,7 +4625,7 @@ static int spu_register_aead(struct iproc_alg_s *driver_alg)
        aead->base.cra_alignmask = 0;
        aead->base.cra_ctxsize = sizeof(struct iproc_ctx_s);
 
-       aead->base.cra_flags |= CRYPTO_ALG_ASYNC;
+       aead->base.cra_flags |= CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY;
        /* setkey set in alg initialization */
        aead->setauthsize = aead_setauthsize;
        aead->encrypt = aead_encrypt;
index 797bff9b93182abf4c7cdc321054c92a71bf6123..e94e7f27f1d0ddb9e10f58f2d9fbe02c3c607b6a 100644 (file)
@@ -3412,7 +3412,8 @@ static void caam_skcipher_alg_init(struct caam_skcipher_alg *t_alg)
        alg->base.cra_module = THIS_MODULE;
        alg->base.cra_priority = CAAM_CRA_PRIORITY;
        alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                             CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        alg->init = caam_cra_init;
        alg->exit = caam_cra_exit;
@@ -3425,7 +3426,8 @@ static void caam_aead_alg_init(struct caam_aead_alg *t_alg)
        alg->base.cra_module = THIS_MODULE;
        alg->base.cra_priority = CAAM_CRA_PRIORITY;
        alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                             CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        alg->init = caam_aead_init;
        alg->exit = caam_aead_exit;
index 27e36bdf6163b8e9a010415baf33f194fd39568c..efe8f15a4a51a67909522542694ed07e04e4c331 100644 (file)
@@ -2502,7 +2502,8 @@ static void caam_skcipher_alg_init(struct caam_skcipher_alg *t_alg)
        alg->base.cra_module = THIS_MODULE;
        alg->base.cra_priority = CAAM_CRA_PRIORITY;
        alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                             CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        alg->init = caam_cra_init;
        alg->exit = caam_cra_exit;
@@ -2515,7 +2516,8 @@ static void caam_aead_alg_init(struct caam_aead_alg *t_alg)
        alg->base.cra_module = THIS_MODULE;
        alg->base.cra_priority = CAAM_CRA_PRIORITY;
        alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                             CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        alg->init = caam_aead_init;
        alg->exit = caam_aead_exit;
index 45e9ff851e2dfaa9fdc970b17be7880b73c026d3..1b0c2867590652d691538e093defe6853cbc16d8 100644 (file)
@@ -2912,7 +2912,8 @@ static void caam_skcipher_alg_init(struct caam_skcipher_alg *t_alg)
        alg->base.cra_module = THIS_MODULE;
        alg->base.cra_priority = CAAM_CRA_PRIORITY;
        alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                             CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        alg->init = caam_cra_init_skcipher;
        alg->exit = caam_cra_exit;
@@ -2925,7 +2926,8 @@ static void caam_aead_alg_init(struct caam_aead_alg *t_alg)
        alg->base.cra_module = THIS_MODULE;
        alg->base.cra_priority = CAAM_CRA_PRIORITY;
        alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY |
+                             CRYPTO_ALG_KERN_DRIVER_ONLY;
 
        alg->init = caam_cra_init_aead;
        alg->exit = caam_cra_exit_aead;
@@ -4547,7 +4549,7 @@ static struct caam_hash_alg *caam_hash_alloc(struct device *dev,
        alg->cra_priority = CAAM_CRA_PRIORITY;
        alg->cra_blocksize = template->blocksize;
        alg->cra_alignmask = 0;
-       alg->cra_flags = CRYPTO_ALG_ASYNC;
+       alg->cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY;
 
        t_alg->alg_type = template->alg_type;
        t_alg->dev = dev;
index 27ff4a3d037ee6927f5a44c1072bdb7f266c933b..e8a6d8bc43b5dc67ff559e878186cda582c0b23b 100644 (file)
@@ -1927,7 +1927,7 @@ caam_hash_alloc(struct caam_hash_template *template,
        alg->cra_priority = CAAM_CRA_PRIORITY;
        alg->cra_blocksize = template->blocksize;
        alg->cra_alignmask = 0;
-       alg->cra_flags = CRYPTO_ALG_ASYNC;
+       alg->cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY;
 
        t_alg->alg_type = template->alg_type;
 
index 0f0991f9f294bfb83d36ccb795f7cf6981d75279..5af0dc2a8909f889fbf4e4a74b9e03cf4549164d 100644 (file)
@@ -341,7 +341,8 @@ static int cvm_enc_dec_init(struct crypto_skcipher *tfm)
 }
 
 static struct skcipher_alg algs[] = { {
-       .base.cra_flags         = CRYPTO_ALG_ASYNC,
+       .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct cvm_enc_ctx),
        .base.cra_alignmask     = 7,
@@ -358,7 +359,8 @@ static struct skcipher_alg algs[] = { {
        .decrypt                = cvm_decrypt,
        .init                   = cvm_enc_dec_init,
 }, {
-       .base.cra_flags         = CRYPTO_ALG_ASYNC,
+       .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct cvm_enc_ctx),
        .base.cra_alignmask     = 7,
@@ -375,7 +377,8 @@ static struct skcipher_alg algs[] = { {
        .decrypt                = cvm_decrypt,
        .init                   = cvm_enc_dec_init,
 }, {
-       .base.cra_flags         = CRYPTO_ALG_ASYNC,
+       .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct cvm_enc_ctx),
        .base.cra_alignmask     = 7,
@@ -391,7 +394,8 @@ static struct skcipher_alg algs[] = { {
        .decrypt                = cvm_decrypt,
        .init                   = cvm_enc_dec_init,
 }, {
-       .base.cra_flags         = CRYPTO_ALG_ASYNC,
+       .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct cvm_enc_ctx),
        .base.cra_alignmask     = 7,
@@ -408,7 +412,8 @@ static struct skcipher_alg algs[] = { {
        .decrypt                = cvm_decrypt,
        .init                   = cvm_enc_dec_init,
 }, {
-       .base.cra_flags         = CRYPTO_ALG_ASYNC,
+       .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize     = DES3_EDE_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct cvm_des3_ctx),
        .base.cra_alignmask     = 7,
@@ -425,7 +430,8 @@ static struct skcipher_alg algs[] = { {
        .decrypt                = cvm_decrypt,
        .init                   = cvm_enc_dec_init,
 }, {
-       .base.cra_flags         = CRYPTO_ALG_ASYNC,
+       .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize     = DES3_EDE_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct cvm_des3_ctx),
        .base.cra_alignmask     = 7,
index dce5423a58831382b4c039b1f924bd95b20358ab..1be2571363fe6d64f239bc7edb3f4e20a0173af9 100644 (file)
@@ -522,7 +522,7 @@ static struct aead_alg nitrox_aeads[] = { {
                .cra_name = "gcm(aes)",
                .cra_driver_name = "n5_aes_gcm",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = 1,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -541,7 +541,7 @@ static struct aead_alg nitrox_aeads[] = { {
                .cra_name = "rfc4106(gcm(aes))",
                .cra_driver_name = "n5_rfc4106",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = 1,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
index 18088b0a22579f960e9768c6b91d3ee03e488e2b..a553ac65f3249227f73ff220e5a4dfb6f90dd908 100644 (file)
@@ -388,7 +388,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "cbc(aes)",
                .cra_driver_name = "n5_cbc(aes)",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -407,7 +407,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "ecb(aes)",
                .cra_driver_name = "n5_ecb(aes)",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -426,7 +426,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "cfb(aes)",
                .cra_driver_name = "n5_cfb(aes)",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -445,7 +445,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "xts(aes)",
                .cra_driver_name = "n5_xts(aes)",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -464,7 +464,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "rfc3686(ctr(aes))",
                .cra_driver_name = "n5_rfc3686(ctr(aes))",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = 1,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -483,7 +483,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "cts(cbc(aes))",
                .cra_driver_name = "n5_cts(cbc(aes))",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -502,7 +502,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "cbc(des3_ede)",
                .cra_driver_name = "n5_cbc(des3_ede)",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
@@ -521,7 +521,7 @@ static struct skcipher_alg nitrox_skciphers[] = { {
                .cra_name = "ecb(des3_ede)",
                .cra_driver_name = "n5_ecb(des3_ede)",
                .cra_priority = PRIO,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct nitrox_crypto_ctx),
                .cra_alignmask = 0,
index 5eba7ee49e8156e0d3a92dfcfb39de16994c9e13..11a305fa19e67c29875de647d70bde87bafe9136 100644 (file)
@@ -378,6 +378,7 @@ int ccp_register_aes_cmac_algs(struct list_head *head)
        snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "cmac(aes)");
        snprintf(base->cra_driver_name, CRYPTO_MAX_ALG_NAME, "cmac-aes-ccp");
        base->cra_flags = CRYPTO_ALG_ASYNC |
+                         CRYPTO_ALG_ALLOCATES_MEMORY |
                          CRYPTO_ALG_KERN_DRIVER_ONLY |
                          CRYPTO_ALG_NEED_FALLBACK;
        base->cra_blocksize = AES_BLOCK_SIZE;
index 9e8f07c1afac2b8ae153196ef5eb245388b27e05..1c1c939f5c39bb93c7fb3cfe3c9d18948a90b46b 100644 (file)
@@ -172,6 +172,7 @@ static struct aead_alg ccp_aes_gcm_defaults = {
        .maxauthsize = AES_BLOCK_SIZE,
        .base = {
                .cra_flags      = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                  CRYPTO_ALG_KERN_DRIVER_ONLY |
                                  CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize  = AES_BLOCK_SIZE,
index 959168a7ac59d75f627f2080f9f572f54156a72b..6849261ca47d037c7dc9f2c78e6a0cf9d25c09d5 100644 (file)
@@ -242,6 +242,7 @@ static int ccp_register_aes_xts_alg(struct list_head *head,
        snprintf(alg->base.cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
                 def->drv_name);
        alg->base.cra_flags     = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                  CRYPTO_ALG_KERN_DRIVER_ONLY |
                                  CRYPTO_ALG_NEED_FALLBACK;
        alg->base.cra_blocksize = AES_BLOCK_SIZE;
index 51e12fbd11592417e7842965a26867a4217ee9d7..e6dcd8cedd53e52385d3685bcd42893ba9fb444b 100644 (file)
@@ -212,6 +212,7 @@ static const struct skcipher_alg ccp_aes_defaults = {
        .init                   = ccp_aes_init_tfm,
 
        .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                  CRYPTO_ALG_KERN_DRIVER_ONLY |
                                  CRYPTO_ALG_NEED_FALLBACK,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
@@ -229,6 +230,7 @@ static const struct skcipher_alg ccp_aes_rfc3686_defaults = {
        .init                   = ccp_aes_rfc3686_init_tfm,
 
        .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                  CRYPTO_ALG_KERN_DRIVER_ONLY |
                                  CRYPTO_ALG_NEED_FALLBACK,
        .base.cra_blocksize     = CTR_RFC3686_BLOCK_SIZE,
index 9c129defdb50207362698be61507499396291a55..ec97daf0fcb7cde5b959997edf480b377e71fd17 100644 (file)
@@ -136,6 +136,7 @@ static const struct skcipher_alg ccp_des3_defaults = {
        .init                   = ccp_des3_init_tfm,
 
        .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                  CRYPTO_ALG_KERN_DRIVER_ONLY |
                                  CRYPTO_ALG_NEED_FALLBACK,
        .base.cra_blocksize     = DES3_EDE_BLOCK_SIZE,
index 2bc29736fa45edd48e7f102129e06086e9e170da..8fbfdb9e8cd3c2ccb0ca179093ba6871151bb882 100644 (file)
@@ -487,6 +487,7 @@ static int ccp_register_sha_alg(struct list_head *head,
        snprintf(base->cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
                 def->drv_name);
        base->cra_flags = CRYPTO_ALG_ASYNC |
+                         CRYPTO_ALG_ALLOCATES_MEMORY |
                          CRYPTO_ALG_KERN_DRIVER_ONLY |
                          CRYPTO_ALG_NEED_FALLBACK;
        base->cra_blocksize = def->block_size;
index a6625b90fb1ac48af439f4c1efcf3b29f3abc22d..9b68d62149ad21b7b72f4676ab36b0bb6f4a5542 100644 (file)
@@ -4434,6 +4434,7 @@ static int chcr_register_alg(void)
                        driver_algs[i].alg.skcipher.base.cra_module = THIS_MODULE;
                        driver_algs[i].alg.skcipher.base.cra_flags =
                                CRYPTO_ALG_TYPE_SKCIPHER | CRYPTO_ALG_ASYNC |
+                               CRYPTO_ALG_ALLOCATES_MEMORY |
                                CRYPTO_ALG_NEED_FALLBACK;
                        driver_algs[i].alg.skcipher.base.cra_ctxsize =
                                sizeof(struct chcr_context) +
@@ -4445,7 +4446,8 @@ static int chcr_register_alg(void)
                        break;
                case CRYPTO_ALG_TYPE_AEAD:
                        driver_algs[i].alg.aead.base.cra_flags =
-                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK;
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK |
+                               CRYPTO_ALG_ALLOCATES_MEMORY;
                        driver_algs[i].alg.aead.encrypt = chcr_aead_encrypt;
                        driver_algs[i].alg.aead.decrypt = chcr_aead_decrypt;
                        driver_algs[i].alg.aead.init = chcr_aead_cra_init;
@@ -4465,7 +4467,8 @@ static int chcr_register_alg(void)
                        a_hash->halg.statesize = SZ_AHASH_REQ_CTX;
                        a_hash->halg.base.cra_priority = CHCR_CRA_PRIORITY;
                        a_hash->halg.base.cra_module = THIS_MODULE;
-                       a_hash->halg.base.cra_flags = CRYPTO_ALG_ASYNC;
+                       a_hash->halg.base.cra_flags =
+                               CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY;
                        a_hash->halg.base.cra_alignmask = 0;
                        a_hash->halg.base.cra_exit = NULL;
 
index 4ad4ffd90ceec4fcdcda0e05c259ed7f3c980bf4..8ca945ac297ef2d2c6584d2184dc96eff81b1ed5 100644 (file)
@@ -934,7 +934,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "ecb(aes)",
                        .cra_driver_name = "hisi_sec_aes_ecb",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -953,7 +954,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "cbc(aes)",
                        .cra_driver_name = "hisi_sec_aes_cbc",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -972,7 +974,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "ctr(aes)",
                        .cra_driver_name = "hisi_sec_aes_ctr",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -991,7 +994,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "xts(aes)",
                        .cra_driver_name = "hisi_sec_aes_xts",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -1011,7 +1015,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "ecb(des)",
                        .cra_driver_name = "hisi_sec_des_ecb",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -1030,7 +1035,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "cbc(des)",
                        .cra_driver_name = "hisi_sec_des_cbc",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -1049,7 +1055,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "cbc(des3_ede)",
                        .cra_driver_name = "hisi_sec_3des_cbc",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
@@ -1068,7 +1075,8 @@ static struct skcipher_alg sec_algs[] = {
                        .cra_name = "ecb(des3_ede)",
                        .cra_driver_name = "hisi_sec_3des_ecb",
                        .cra_priority = 4001,
-                       .cra_flags = CRYPTO_ALG_ASYNC,
+                       .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct sec_alg_tfm_ctx),
                        .cra_alignmask = 0,
index bfb9ce1359f3d1048898dc46ae545866221c6c62..497969ae8b2304ef0681d950df38967ef26a2da0 100644 (file)
@@ -1475,7 +1475,7 @@ static int sec_skcipher_decrypt(struct skcipher_request *sk_req)
                .cra_name = sec_cra_name,\
                .cra_driver_name = "hisi_sec_"sec_cra_name,\
                .cra_priority = SEC_PRIORITY,\
-               .cra_flags = CRYPTO_ALG_ASYNC,\
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,\
                .cra_blocksize = blk_size,\
                .cra_ctxsize = sizeof(struct sec_ctx),\
                .cra_module = THIS_MODULE,\
@@ -1599,7 +1599,7 @@ static int sec_aead_decrypt(struct aead_request *a_req)
                .cra_name = sec_cra_name,\
                .cra_driver_name = "hisi_sec_"sec_cra_name,\
                .cra_priority = SEC_PRIORITY,\
-               .cra_flags = CRYPTO_ALG_ASYNC,\
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,\
                .cra_blocksize = blk_size,\
                .cra_ctxsize = sizeof(struct sec_ctx),\
                .cra_module = THIS_MODULE,\
index 0c5e80c3f6e3c345a921925811fdede4711abd61..1ac3253b7903aea8bbfa821e748f869c5063802b 100644 (file)
@@ -1300,6 +1300,7 @@ struct safexcel_alg_template safexcel_alg_ecb_aes = {
                        .cra_driver_name = "safexcel-ecb-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1337,6 +1338,7 @@ struct safexcel_alg_template safexcel_alg_cbc_aes = {
                        .cra_driver_name = "safexcel-cbc-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1374,6 +1376,7 @@ struct safexcel_alg_template safexcel_alg_cfb_aes = {
                        .cra_driver_name = "safexcel-cfb-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1411,6 +1414,7 @@ struct safexcel_alg_template safexcel_alg_ofb_aes = {
                        .cra_driver_name = "safexcel-ofb-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1485,6 +1489,7 @@ struct safexcel_alg_template safexcel_alg_ctr_aes = {
                        .cra_driver_name = "safexcel-ctr-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1545,6 +1550,7 @@ struct safexcel_alg_template safexcel_alg_cbc_des = {
                        .cra_driver_name = "safexcel-cbc-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1582,6 +1588,7 @@ struct safexcel_alg_template safexcel_alg_ecb_des = {
                        .cra_driver_name = "safexcel-ecb-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1642,6 +1649,7 @@ struct safexcel_alg_template safexcel_alg_cbc_des3_ede = {
                        .cra_driver_name = "safexcel-cbc-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1679,6 +1687,7 @@ struct safexcel_alg_template safexcel_alg_ecb_des3_ede = {
                        .cra_driver_name = "safexcel-ecb-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1751,6 +1760,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha1-cbc-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1786,6 +1796,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha256-cbc-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1821,6 +1832,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha224-cbc-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1856,6 +1868,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha512-cbc-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1891,6 +1904,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha384-cbc-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = AES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1927,6 +1941,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des3_ede = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha1-cbc-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1963,6 +1978,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des3_ede = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha256-cbc-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -1999,6 +2015,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des3_ede = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha224-cbc-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2035,6 +2052,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des3_ede = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha512-cbc-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2071,6 +2089,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des3_ede = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha384-cbc-des3_ede",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2107,6 +2126,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha1-cbc-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2143,6 +2163,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha256-cbc-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2179,6 +2200,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha224-cbc-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2215,6 +2237,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha512-cbc-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2251,6 +2274,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha384-cbc-des",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = DES_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2285,6 +2309,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_ctr_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha1-ctr-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2319,6 +2344,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_ctr_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha256-ctr-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2353,6 +2379,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_ctr_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha224-ctr-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2387,6 +2414,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_ctr_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha512-ctr-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2421,6 +2449,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_ctr_aes = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha384-ctr-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2534,6 +2563,7 @@ struct safexcel_alg_template safexcel_alg_xts_aes = {
                        .cra_driver_name = "safexcel-xts-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = XTS_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2646,6 +2676,7 @@ struct safexcel_alg_template safexcel_alg_gcm = {
                        .cra_driver_name = "safexcel-gcm-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2769,6 +2800,7 @@ struct safexcel_alg_template safexcel_alg_ccm = {
                        .cra_driver_name = "safexcel-ccm-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2832,6 +2864,7 @@ struct safexcel_alg_template safexcel_alg_chacha20 = {
                        .cra_driver_name = "safexcel-chacha20",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -2993,6 +3026,7 @@ struct safexcel_alg_template safexcel_alg_chachapoly = {
                        /* +1 to put it above HW chacha + SW poly */
                        .cra_priority = SAFEXCEL_CRA_PRIORITY + 1,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY |
                                     CRYPTO_ALG_NEED_FALLBACK,
                        .cra_blocksize = 1,
@@ -3032,6 +3066,7 @@ struct safexcel_alg_template safexcel_alg_chachapoly_esp = {
                        /* +1 to put it above HW chacha + SW poly */
                        .cra_priority = SAFEXCEL_CRA_PRIORITY + 1,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY |
                                     CRYPTO_ALG_NEED_FALLBACK,
                        .cra_blocksize = 1,
@@ -3110,6 +3145,7 @@ struct safexcel_alg_template safexcel_alg_ecb_sm4 = {
                        .cra_driver_name = "safexcel-ecb-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SM4_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3147,6 +3183,7 @@ struct safexcel_alg_template safexcel_alg_cbc_sm4 = {
                        .cra_driver_name = "safexcel-cbc-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SM4_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3184,6 +3221,7 @@ struct safexcel_alg_template safexcel_alg_ofb_sm4 = {
                        .cra_driver_name = "safexcel-ofb-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3221,6 +3259,7 @@ struct safexcel_alg_template safexcel_alg_cfb_sm4 = {
                        .cra_driver_name = "safexcel-cfb-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3273,6 +3312,7 @@ struct safexcel_alg_template safexcel_alg_ctr_sm4 = {
                        .cra_driver_name = "safexcel-ctr-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3332,6 +3372,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_sm4 = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha1-cbc-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SM4_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3441,6 +3482,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sm3_cbc_sm4 = {
                        .cra_driver_name = "safexcel-authenc-hmac-sm3-cbc-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY |
                                     CRYPTO_ALG_NEED_FALLBACK,
                        .cra_blocksize = SM4_BLOCK_SIZE,
@@ -3476,6 +3518,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_ctr_sm4 = {
                        .cra_driver_name = "safexcel-authenc-hmac-sha1-ctr-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3510,6 +3553,7 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sm3_ctr_sm4 = {
                        .cra_driver_name = "safexcel-authenc-hmac-sm3-ctr-sm4",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3578,6 +3622,7 @@ struct safexcel_alg_template safexcel_alg_rfc4106_gcm = {
                        .cra_driver_name = "safexcel-rfc4106-gcm-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3622,6 +3667,7 @@ struct safexcel_alg_template safexcel_alg_rfc4543_gcm = {
                        .cra_driver_name = "safexcel-rfc4543-gcm-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
@@ -3713,6 +3759,7 @@ struct safexcel_alg_template safexcel_alg_rfc4309_ccm = {
                        .cra_driver_name = "safexcel-rfc4309-ccm-aes",
                        .cra_priority = SAFEXCEL_CRA_PRIORITY,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = 1,
                        .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
index 43962bc709c6c064089cd4d9a8191a2879a9df4f..16a467969d8edb37a6575249ee86b87e90d0f72b 100644 (file)
@@ -992,6 +992,7 @@ struct safexcel_alg_template safexcel_alg_sha1 = {
                                .cra_driver_name = "safexcel-sha1",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA1_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1235,6 +1236,7 @@ struct safexcel_alg_template safexcel_alg_hmac_sha1 = {
                                .cra_driver_name = "safexcel-hmac-sha1",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA1_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1291,6 +1293,7 @@ struct safexcel_alg_template safexcel_alg_sha256 = {
                                .cra_driver_name = "safexcel-sha256",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA256_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1347,6 +1350,7 @@ struct safexcel_alg_template safexcel_alg_sha224 = {
                                .cra_driver_name = "safexcel-sha224",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA224_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1418,6 +1422,7 @@ struct safexcel_alg_template safexcel_alg_hmac_sha224 = {
                                .cra_driver_name = "safexcel-hmac-sha224",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA224_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1489,6 +1494,7 @@ struct safexcel_alg_template safexcel_alg_hmac_sha256 = {
                                .cra_driver_name = "safexcel-hmac-sha256",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA256_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1545,6 +1551,7 @@ struct safexcel_alg_template safexcel_alg_sha512 = {
                                .cra_driver_name = "safexcel-sha512",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA512_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1601,6 +1608,7 @@ struct safexcel_alg_template safexcel_alg_sha384 = {
                                .cra_driver_name = "safexcel-sha384",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA384_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1672,6 +1680,7 @@ struct safexcel_alg_template safexcel_alg_hmac_sha512 = {
                                .cra_driver_name = "safexcel-hmac-sha512",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA512_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1743,6 +1752,7 @@ struct safexcel_alg_template safexcel_alg_hmac_sha384 = {
                                .cra_driver_name = "safexcel-hmac-sha384",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SHA384_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1799,6 +1809,7 @@ struct safexcel_alg_template safexcel_alg_md5 = {
                                .cra_driver_name = "safexcel-md5",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = MD5_HMAC_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1871,6 +1882,7 @@ struct safexcel_alg_template safexcel_alg_hmac_md5 = {
                                .cra_driver_name = "safexcel-hmac-md5",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = MD5_HMAC_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -1952,6 +1964,7 @@ struct safexcel_alg_template safexcel_alg_crc32 = {
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_OPTIONAL_KEY |
                                             CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = 1,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -2041,6 +2054,7 @@ struct safexcel_alg_template safexcel_alg_cbcmac = {
                                .cra_driver_name = "safexcel-cbcmac-aes",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = 1,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -2136,6 +2150,7 @@ struct safexcel_alg_template safexcel_alg_xcbcmac = {
                                .cra_driver_name = "safexcel-xcbc-aes",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = AES_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -2232,6 +2247,7 @@ struct safexcel_alg_template safexcel_alg_cmac = {
                                .cra_driver_name = "safexcel-cmac-aes",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = AES_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -2288,6 +2304,7 @@ struct safexcel_alg_template safexcel_alg_sm3 = {
                                .cra_driver_name = "safexcel-sm3",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SM3_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
@@ -2359,6 +2376,7 @@ struct safexcel_alg_template safexcel_alg_hmac_sm3 = {
                                .cra_driver_name = "safexcel-hmac-sm3",
                                .cra_priority = SAFEXCEL_CRA_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = SM3_BLOCK_SIZE,
                                .cra_ctxsize = sizeof(struct safexcel_ahash_ctx),
index ad73fc9466821db720fe73c058ca42cc636c1c33..f478bb0a566af317afcc4cff50644c16b3dee288 100644 (file)
@@ -1402,7 +1402,8 @@ static int __init ixp_module_init(void)
 
                /* block ciphers */
                cra->base.cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY |
-                                     CRYPTO_ALG_ASYNC;
+                                     CRYPTO_ALG_ASYNC |
+                                     CRYPTO_ALG_ALLOCATES_MEMORY;
                if (!cra->setkey)
                        cra->setkey = ablk_setkey;
                if (!cra->encrypt)
@@ -1435,7 +1436,8 @@ static int __init ixp_module_init(void)
 
                /* authenc */
                cra->base.cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY |
-                                     CRYPTO_ALG_ASYNC;
+                                     CRYPTO_ALG_ASYNC |
+                                     CRYPTO_ALG_ALLOCATES_MEMORY;
                cra->setkey = cra->setkey ?: aead_setkey;
                cra->setauthsize = aead_setauthsize;
                cra->encrypt = aead_encrypt;
index f133c2ccb5aee5365660f8a823189cf336d7f569..45b4d7a2983311c2a8c0ca2617baf625a3db8a5e 100644 (file)
@@ -508,7 +508,8 @@ struct skcipher_alg mv_cesa_ecb_des_alg = {
                .cra_name = "ecb(des)",
                .cra_driver_name = "mv-ecb-des",
                .cra_priority = 300,
-               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                            CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = DES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct mv_cesa_des_ctx),
                .cra_alignmask = 0,
@@ -558,7 +559,8 @@ struct skcipher_alg mv_cesa_cbc_des_alg = {
                .cra_name = "cbc(des)",
                .cra_driver_name = "mv-cbc-des",
                .cra_priority = 300,
-               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                            CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = DES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct mv_cesa_des_ctx),
                .cra_alignmask = 0,
@@ -616,7 +618,8 @@ struct skcipher_alg mv_cesa_ecb_des3_ede_alg = {
                .cra_name = "ecb(des3_ede)",
                .cra_driver_name = "mv-ecb-des3-ede",
                .cra_priority = 300,
-               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                            CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct mv_cesa_des3_ctx),
                .cra_alignmask = 0,
@@ -669,7 +672,8 @@ struct skcipher_alg mv_cesa_cbc_des3_ede_alg = {
                .cra_name = "cbc(des3_ede)",
                .cra_driver_name = "mv-cbc-des3-ede",
                .cra_priority = 300,
-               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                            CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct mv_cesa_des3_ctx),
                .cra_alignmask = 0,
@@ -741,7 +745,8 @@ struct skcipher_alg mv_cesa_ecb_aes_alg = {
                .cra_name = "ecb(aes)",
                .cra_driver_name = "mv-ecb-aes",
                .cra_priority = 300,
-               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                            CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct mv_cesa_aes_ctx),
                .cra_alignmask = 0,
@@ -790,7 +795,8 @@ struct skcipher_alg mv_cesa_cbc_aes_alg = {
                .cra_name = "cbc(aes)",
                .cra_driver_name = "mv-cbc-aes",
                .cra_priority = 300,
-               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                            CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct mv_cesa_aes_ctx),
                .cra_alignmask = 0,
index b971284332b65408dcd1bee99c653af7beb55be2..bd0bd9ffd6e904456d2119aa67102d36d41a5748 100644 (file)
@@ -921,6 +921,7 @@ struct ahash_alg mv_md5_alg = {
                        .cra_driver_name = "mv-md5",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = MD5_HMAC_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct mv_cesa_hash_ctx),
@@ -991,6 +992,7 @@ struct ahash_alg mv_sha1_alg = {
                        .cra_driver_name = "mv-sha1",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SHA1_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct mv_cesa_hash_ctx),
@@ -1064,6 +1066,7 @@ struct ahash_alg mv_sha256_alg = {
                        .cra_driver_name = "mv-sha256",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SHA256_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct mv_cesa_hash_ctx),
@@ -1298,6 +1301,7 @@ struct ahash_alg mv_ahmac_md5_alg = {
                        .cra_driver_name = "mv-hmac-md5",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = MD5_HMAC_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct mv_cesa_hmac_ctx),
@@ -1368,6 +1372,7 @@ struct ahash_alg mv_ahmac_sha1_alg = {
                        .cra_driver_name = "mv-hmac-sha1",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SHA1_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct mv_cesa_hmac_ctx),
@@ -1438,6 +1443,7 @@ struct ahash_alg mv_ahmac_sha256_alg = {
                        .cra_driver_name = "mv-hmac-sha256",
                        .cra_priority = 300,
                        .cra_flags = CRYPTO_ALG_ASYNC |
+                                    CRYPTO_ALG_ALLOCATES_MEMORY |
                                     CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .cra_blocksize = SHA256_BLOCK_SIZE,
                        .cra_ctxsize = sizeof(struct mv_cesa_hmac_ctx),
index 01bf4826c03ef6d3d940176f1cd808b5e8043d2b..90bb31329d4baf1bd08fbbed6089a707ce7ab457 100644 (file)
@@ -1301,7 +1301,7 @@ static int otx_cpt_aead_null_decrypt(struct aead_request *req)
 static struct skcipher_alg otx_cpt_skciphers[] = { {
        .base.cra_name = "xts(aes)",
        .base.cra_driver_name = "cpt_xts_aes",
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = AES_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct otx_cpt_enc_ctx),
        .base.cra_alignmask = 7,
@@ -1318,7 +1318,7 @@ static struct skcipher_alg otx_cpt_skciphers[] = { {
 }, {
        .base.cra_name = "cbc(aes)",
        .base.cra_driver_name = "cpt_cbc_aes",
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = AES_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct otx_cpt_enc_ctx),
        .base.cra_alignmask = 7,
@@ -1335,7 +1335,7 @@ static struct skcipher_alg otx_cpt_skciphers[] = { {
 }, {
        .base.cra_name = "ecb(aes)",
        .base.cra_driver_name = "cpt_ecb_aes",
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = AES_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct otx_cpt_enc_ctx),
        .base.cra_alignmask = 7,
@@ -1352,7 +1352,7 @@ static struct skcipher_alg otx_cpt_skciphers[] = { {
 }, {
        .base.cra_name = "cfb(aes)",
        .base.cra_driver_name = "cpt_cfb_aes",
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = AES_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct otx_cpt_enc_ctx),
        .base.cra_alignmask = 7,
@@ -1369,7 +1369,7 @@ static struct skcipher_alg otx_cpt_skciphers[] = { {
 }, {
        .base.cra_name = "cbc(des3_ede)",
        .base.cra_driver_name = "cpt_cbc_des3_ede",
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = DES3_EDE_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct otx_cpt_des3_ctx),
        .base.cra_alignmask = 7,
@@ -1386,7 +1386,7 @@ static struct skcipher_alg otx_cpt_skciphers[] = { {
 }, {
        .base.cra_name = "ecb(des3_ede)",
        .base.cra_driver_name = "cpt_ecb_des3_ede",
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = DES3_EDE_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct otx_cpt_des3_ctx),
        .base.cra_alignmask = 7,
@@ -1407,7 +1407,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha1),cbc(aes))",
                .cra_driver_name = "cpt_hmac_sha1_cbc_aes",
                .cra_blocksize = AES_BLOCK_SIZE,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1426,7 +1426,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha256),cbc(aes))",
                .cra_driver_name = "cpt_hmac_sha256_cbc_aes",
                .cra_blocksize = AES_BLOCK_SIZE,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1445,7 +1445,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha384),cbc(aes))",
                .cra_driver_name = "cpt_hmac_sha384_cbc_aes",
                .cra_blocksize = AES_BLOCK_SIZE,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1464,7 +1464,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha512),cbc(aes))",
                .cra_driver_name = "cpt_hmac_sha512_cbc_aes",
                .cra_blocksize = AES_BLOCK_SIZE,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1483,7 +1483,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha1),ecb(cipher_null))",
                .cra_driver_name = "cpt_hmac_sha1_ecb_null",
                .cra_blocksize = 1,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1502,7 +1502,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha256),ecb(cipher_null))",
                .cra_driver_name = "cpt_hmac_sha256_ecb_null",
                .cra_blocksize = 1,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1521,7 +1521,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha384),ecb(cipher_null))",
                .cra_driver_name = "cpt_hmac_sha384_ecb_null",
                .cra_blocksize = 1,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1540,7 +1540,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "authenc(hmac(sha512),ecb(cipher_null))",
                .cra_driver_name = "cpt_hmac_sha512_ecb_null",
                .cra_blocksize = 1,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
@@ -1559,7 +1559,7 @@ static struct aead_alg otx_cpt_aeads[] = { {
                .cra_name = "rfc4106(gcm(aes))",
                .cra_driver_name = "cpt_rfc4106_gcm_aes",
                .cra_blocksize = 1,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_ctxsize = sizeof(struct otx_cpt_aead_ctx),
                .cra_priority = 4001,
                .cra_alignmask = 0,
index 6a828bbecea40027d1e50aeb5eefc659e5fa8c7b..d8aec5153b2163caeffbdde3e688f3d09ce11251 100644 (file)
@@ -1382,7 +1382,8 @@ static int __n2_register_one_skcipher(const struct n2_skcipher_tmpl *tmpl)
        snprintf(alg->base.cra_name, CRYPTO_MAX_ALG_NAME, "%s", tmpl->name);
        snprintf(alg->base.cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s-n2", tmpl->drv_name);
        alg->base.cra_priority = N2_CRA_PRIORITY;
-       alg->base.cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC;
+       alg->base.cra_flags = CRYPTO_ALG_KERN_DRIVER_ONLY | CRYPTO_ALG_ASYNC |
+                             CRYPTO_ALG_ALLOCATES_MEMORY;
        alg->base.cra_blocksize = tmpl->block_size;
        p->enc_type = tmpl->enc_type;
        alg->base.cra_ctxsize = sizeof(struct n2_skcipher_context);
index 13503e16ce1d8c6f35f995b5e2607dbe945acd72..dac6eb37fff93684965a87a12e00aeabf10e0e96 100644 (file)
@@ -1232,6 +1232,7 @@ static struct spacc_alg ipsec_engine_algs[] = {
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_KERN_DRIVER_ONLY |
                                                  CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                                  CRYPTO_ALG_NEED_FALLBACK,
                        .base.cra_blocksize     = AES_BLOCK_SIZE,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
@@ -1257,6 +1258,7 @@ static struct spacc_alg ipsec_engine_algs[] = {
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_KERN_DRIVER_ONLY |
                                                  CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                                  CRYPTO_ALG_NEED_FALLBACK,
                        .base.cra_blocksize     = AES_BLOCK_SIZE,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
@@ -1280,7 +1282,8 @@ static struct spacc_alg ipsec_engine_algs[] = {
                        .base.cra_driver_name   = "cbc-des-picoxcell",
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_KERN_DRIVER_ONLY |
-                                                 CRYPTO_ALG_ASYNC,
+                                                 CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY,
                        .base.cra_blocksize     = DES_BLOCK_SIZE,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
                        .base.cra_module        = THIS_MODULE,
@@ -1304,7 +1307,8 @@ static struct spacc_alg ipsec_engine_algs[] = {
                        .base.cra_driver_name   = "ecb-des-picoxcell",
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_KERN_DRIVER_ONLY |
-                                                 CRYPTO_ALG_ASYNC,
+                                                 CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY,
                        .base.cra_blocksize     = DES_BLOCK_SIZE,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
                        .base.cra_module        = THIS_MODULE,
@@ -1327,6 +1331,7 @@ static struct spacc_alg ipsec_engine_algs[] = {
                        .base.cra_driver_name   = "cbc-des3-ede-picoxcell",
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                                  CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .base.cra_blocksize     = DES3_EDE_BLOCK_SIZE,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
@@ -1351,6 +1356,7 @@ static struct spacc_alg ipsec_engine_algs[] = {
                        .base.cra_driver_name   = "ecb-des3-ede-picoxcell",
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                                  CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .base.cra_blocksize     = DES3_EDE_BLOCK_SIZE,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
@@ -1382,6 +1388,7 @@ static struct spacc_aead ipsec_engine_aeads[] = {
                                                   "cbc-aes-picoxcell",
                                .cra_priority = SPACC_CRYPTO_ALG_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_NEED_FALLBACK |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = AES_BLOCK_SIZE,
@@ -1412,6 +1419,7 @@ static struct spacc_aead ipsec_engine_aeads[] = {
                                                   "cbc-aes-picoxcell",
                                .cra_priority = SPACC_CRYPTO_ALG_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_NEED_FALLBACK |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = AES_BLOCK_SIZE,
@@ -1442,6 +1450,7 @@ static struct spacc_aead ipsec_engine_aeads[] = {
                                                   "cbc-aes-picoxcell",
                                .cra_priority = SPACC_CRYPTO_ALG_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_NEED_FALLBACK |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = AES_BLOCK_SIZE,
@@ -1472,6 +1481,7 @@ static struct spacc_aead ipsec_engine_aeads[] = {
                                                   "cbc-3des-picoxcell",
                                .cra_priority = SPACC_CRYPTO_ALG_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_NEED_FALLBACK |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
@@ -1503,6 +1513,7 @@ static struct spacc_aead ipsec_engine_aeads[] = {
                                                   "cbc-3des-picoxcell",
                                .cra_priority = SPACC_CRYPTO_ALG_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_NEED_FALLBACK |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
@@ -1533,6 +1544,7 @@ static struct spacc_aead ipsec_engine_aeads[] = {
                                                   "cbc-3des-picoxcell",
                                .cra_priority = SPACC_CRYPTO_ALG_PRIORITY,
                                .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY |
                                             CRYPTO_ALG_NEED_FALLBACK |
                                             CRYPTO_ALG_KERN_DRIVER_ONLY,
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
@@ -1562,6 +1574,7 @@ static struct spacc_alg l2_engine_algs[] = {
                        .base.cra_driver_name   = "f8-kasumi-picoxcell",
                        .base.cra_priority      = SPACC_CRYPTO_ALG_PRIORITY,
                        .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                                 CRYPTO_ALG_ALLOCATES_MEMORY |
                                                  CRYPTO_ALG_KERN_DRIVER_ONLY,
                        .base.cra_blocksize     = 8,
                        .base.cra_ctxsize       = sizeof(struct spacc_ablk_ctx),
index 2a353e249e1cf8fd13d871a129dddf16716ecd51..72753b84dc95ca5e22630d081648036fa6c423d0 100644 (file)
@@ -1295,7 +1295,7 @@ static struct aead_alg qat_aeads[] = { {
                .cra_name = "authenc(hmac(sha1),cbc(aes))",
                .cra_driver_name = "qat_aes_cbc_hmac_sha1",
                .cra_priority = 4001,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct qat_alg_aead_ctx),
                .cra_module = THIS_MODULE,
@@ -1312,7 +1312,7 @@ static struct aead_alg qat_aeads[] = { {
                .cra_name = "authenc(hmac(sha256),cbc(aes))",
                .cra_driver_name = "qat_aes_cbc_hmac_sha256",
                .cra_priority = 4001,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct qat_alg_aead_ctx),
                .cra_module = THIS_MODULE,
@@ -1329,7 +1329,7 @@ static struct aead_alg qat_aeads[] = { {
                .cra_name = "authenc(hmac(sha512),cbc(aes))",
                .cra_driver_name = "qat_aes_cbc_hmac_sha512",
                .cra_priority = 4001,
-               .cra_flags = CRYPTO_ALG_ASYNC,
+               .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
                .cra_blocksize = AES_BLOCK_SIZE,
                .cra_ctxsize = sizeof(struct qat_alg_aead_ctx),
                .cra_module = THIS_MODULE,
@@ -1347,7 +1347,7 @@ static struct skcipher_alg qat_skciphers[] = { {
        .base.cra_name = "cbc(aes)",
        .base.cra_driver_name = "qat_aes_cbc",
        .base.cra_priority = 4001,
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = AES_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx),
        .base.cra_alignmask = 0,
@@ -1365,7 +1365,7 @@ static struct skcipher_alg qat_skciphers[] = { {
        .base.cra_name = "ctr(aes)",
        .base.cra_driver_name = "qat_aes_ctr",
        .base.cra_priority = 4001,
-       .base.cra_flags = CRYPTO_ALG_ASYNC,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = 1,
        .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx),
        .base.cra_alignmask = 0,
@@ -1383,7 +1383,8 @@ static struct skcipher_alg qat_skciphers[] = { {
        .base.cra_name = "xts(aes)",
        .base.cra_driver_name = "qat_aes_xts",
        .base.cra_priority = 4001,
-       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK,
+       .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK |
+                         CRYPTO_ALG_ALLOCATES_MEMORY,
        .base.cra_blocksize = AES_BLOCK_SIZE,
        .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx),
        .base.cra_alignmask = 0,
index a8147381b774024e5990b146bb2dcf73d41a0262..5630c5addd2832dc37be78e106967d076cfc5cd4 100644 (file)
@@ -406,6 +406,7 @@ static int qce_skcipher_register_one(const struct qce_skcipher_def *def,
 
        alg->base.cra_priority          = 300;
        alg->base.cra_flags             = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY |
                                          CRYPTO_ALG_KERN_DRIVER_ONLY;
        alg->base.cra_ctxsize           = sizeof(struct qce_cipher_ctx);
        alg->base.cra_alignmask         = 0;
index 9c6db7f698c440958cdbe62ae55f0f84697c21bf..7c547352a86248d7ca68f436935b28734ce91aeb 100644 (file)
@@ -2264,7 +2264,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha1-"
                                                   "cbc-aes-talitos",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA1_DIGEST_SIZE,
@@ -2285,7 +2286,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha1-"
                                                   "cbc-aes-talitos-hsna",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA1_DIGEST_SIZE,
@@ -2306,7 +2308,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha1-"
                                                   "cbc-3des-talitos",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA1_DIGEST_SIZE,
@@ -2330,7 +2333,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha1-"
                                                   "cbc-3des-talitos-hsna",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA1_DIGEST_SIZE,
@@ -2352,7 +2356,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha224-"
                                                   "cbc-aes-talitos",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA224_DIGEST_SIZE,
@@ -2373,7 +2378,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha224-"
                                                   "cbc-aes-talitos-hsna",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA224_DIGEST_SIZE,
@@ -2394,7 +2400,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha224-"
                                                   "cbc-3des-talitos",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA224_DIGEST_SIZE,
@@ -2418,7 +2425,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha224-"
                                                   "cbc-3des-talitos-hsna",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA224_DIGEST_SIZE,
@@ -2440,7 +2448,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha256-"
                                                   "cbc-aes-talitos",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA256_DIGEST_SIZE,
@@ -2461,7 +2470,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha256-"
                                                   "cbc-aes-talitos-hsna",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA256_DIGEST_SIZE,
@@ -2482,7 +2492,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha256-"
                                                   "cbc-3des-talitos",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA256_DIGEST_SIZE,
@@ -2506,7 +2517,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha256-"
                                                   "cbc-3des-talitos-hsna",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA256_DIGEST_SIZE,
@@ -2528,7 +2540,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha384-"
                                                   "cbc-aes-talitos",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA384_DIGEST_SIZE,
@@ -2549,7 +2562,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha384-"
                                                   "cbc-3des-talitos",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA384_DIGEST_SIZE,
@@ -2571,7 +2585,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha512-"
                                                   "cbc-aes-talitos",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = SHA512_DIGEST_SIZE,
@@ -2592,7 +2607,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-sha512-"
                                                   "cbc-3des-talitos",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = SHA512_DIGEST_SIZE,
@@ -2614,7 +2630,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-md5-"
                                                   "cbc-aes-talitos",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = MD5_DIGEST_SIZE,
@@ -2635,7 +2652,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-md5-"
                                                   "cbc-aes-talitos-hsna",
                                .cra_blocksize = AES_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = AES_BLOCK_SIZE,
                        .maxauthsize = MD5_DIGEST_SIZE,
@@ -2655,7 +2673,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-md5-"
                                                   "cbc-3des-talitos",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = MD5_DIGEST_SIZE,
@@ -2678,7 +2697,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_driver_name = "authenc-hmac-md5-"
                                                   "cbc-3des-talitos-hsna",
                                .cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        },
                        .ivsize = DES3_EDE_BLOCK_SIZE,
                        .maxauthsize = MD5_DIGEST_SIZE,
@@ -2699,7 +2719,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "ecb(aes)",
                        .base.cra_driver_name = "ecb-aes-talitos",
                        .base.cra_blocksize = AES_BLOCK_SIZE,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = AES_MIN_KEY_SIZE,
                        .max_keysize = AES_MAX_KEY_SIZE,
                        .setkey = skcipher_aes_setkey,
@@ -2712,7 +2733,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "cbc(aes)",
                        .base.cra_driver_name = "cbc-aes-talitos",
                        .base.cra_blocksize = AES_BLOCK_SIZE,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = AES_MIN_KEY_SIZE,
                        .max_keysize = AES_MAX_KEY_SIZE,
                        .ivsize = AES_BLOCK_SIZE,
@@ -2727,7 +2749,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "ctr(aes)",
                        .base.cra_driver_name = "ctr-aes-talitos",
                        .base.cra_blocksize = 1,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = AES_MIN_KEY_SIZE,
                        .max_keysize = AES_MAX_KEY_SIZE,
                        .ivsize = AES_BLOCK_SIZE,
@@ -2742,7 +2765,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "ecb(des)",
                        .base.cra_driver_name = "ecb-des-talitos",
                        .base.cra_blocksize = DES_BLOCK_SIZE,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = DES_KEY_SIZE,
                        .max_keysize = DES_KEY_SIZE,
                        .setkey = skcipher_des_setkey,
@@ -2755,7 +2779,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "cbc(des)",
                        .base.cra_driver_name = "cbc-des-talitos",
                        .base.cra_blocksize = DES_BLOCK_SIZE,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = DES_KEY_SIZE,
                        .max_keysize = DES_KEY_SIZE,
                        .ivsize = DES_BLOCK_SIZE,
@@ -2770,7 +2795,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "ecb(des3_ede)",
                        .base.cra_driver_name = "ecb-3des-talitos",
                        .base.cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = DES3_EDE_KEY_SIZE,
                        .max_keysize = DES3_EDE_KEY_SIZE,
                        .setkey = skcipher_des3_setkey,
@@ -2784,7 +2810,8 @@ static struct talitos_alg_template driver_algs[] = {
                        .base.cra_name = "cbc(des3_ede)",
                        .base.cra_driver_name = "cbc-3des-talitos",
                        .base.cra_blocksize = DES3_EDE_BLOCK_SIZE,
-                       .base.cra_flags = CRYPTO_ALG_ASYNC,
+                       .base.cra_flags = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                        .min_keysize = DES3_EDE_KEY_SIZE,
                        .max_keysize = DES3_EDE_KEY_SIZE,
                        .ivsize = DES3_EDE_BLOCK_SIZE,
@@ -2804,7 +2831,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "md5",
                                .cra_driver_name = "md5-talitos",
                                .cra_blocksize = MD5_HMAC_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2819,7 +2847,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "sha1",
                                .cra_driver_name = "sha1-talitos",
                                .cra_blocksize = SHA1_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2834,7 +2863,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "sha224",
                                .cra_driver_name = "sha224-talitos",
                                .cra_blocksize = SHA224_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2849,7 +2879,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "sha256",
                                .cra_driver_name = "sha256-talitos",
                                .cra_blocksize = SHA256_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2864,7 +2895,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "sha384",
                                .cra_driver_name = "sha384-talitos",
                                .cra_blocksize = SHA384_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2879,7 +2911,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "sha512",
                                .cra_driver_name = "sha512-talitos",
                                .cra_blocksize = SHA512_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2894,7 +2927,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "hmac(md5)",
                                .cra_driver_name = "hmac-md5-talitos",
                                .cra_blocksize = MD5_HMAC_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2909,7 +2943,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "hmac(sha1)",
                                .cra_driver_name = "hmac-sha1-talitos",
                                .cra_blocksize = SHA1_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2924,7 +2959,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "hmac(sha224)",
                                .cra_driver_name = "hmac-sha224-talitos",
                                .cra_blocksize = SHA224_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2939,7 +2975,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "hmac(sha256)",
                                .cra_driver_name = "hmac-sha256-talitos",
                                .cra_blocksize = SHA256_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2954,7 +2991,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "hmac(sha384)",
                                .cra_driver_name = "hmac-sha384-talitos",
                                .cra_blocksize = SHA384_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
@@ -2969,7 +3007,8 @@ static struct talitos_alg_template driver_algs[] = {
                                .cra_name = "hmac(sha512)",
                                .cra_driver_name = "hmac-sha512-talitos",
                                .cra_blocksize = SHA512_BLOCK_SIZE,
-                               .cra_flags = CRYPTO_ALG_ASYNC,
+                               .cra_flags = CRYPTO_ALG_ASYNC |
+                                            CRYPTO_ALG_ALLOCATES_MEMORY,
                        }
                },
                .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU |
index cb8a6ea2a4bc45940109be4c9d5bb6d9c91bebd6..b2601958282e08b7d1c43994f8cde0281aabbf98 100644 (file)
@@ -597,7 +597,8 @@ static struct virtio_crypto_algo virtio_crypto_algs[] = { {
                .base.cra_name          = "cbc(aes)",
                .base.cra_driver_name   = "virtio_crypto_aes_cbc",
                .base.cra_priority      = 150,
-               .base.cra_flags         = CRYPTO_ALG_ASYNC,
+               .base.cra_flags         = CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY,
                .base.cra_blocksize     = AES_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct virtio_crypto_skcipher_ctx),
                .base.cra_module        = THIS_MODULE,
index cd11558893cd1f75417f13fc53acfab5f150a222..27079354dbe9d1c1c8cea08d70fbcf2c02e1d04e 100644 (file)
@@ -364,6 +364,7 @@ static struct zynqmp_aead_drv_ctx aes_drv_ctx = {
                .cra_priority           = 200,
                .cra_flags              = CRYPTO_ALG_TYPE_AEAD |
                                          CRYPTO_ALG_ASYNC |
+                                         CRYPTO_ALG_ALLOCATES_MEMORY |
                                          CRYPTO_ALG_KERN_DRIVER_ONLY |
                                          CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          = ZYNQMP_AES_BLK_SIZE,