diff options
Diffstat (limited to 'drivers/crypto/bcm/cipher.c')
| -rw-r--r-- | drivers/crypto/bcm/cipher.c | 72 | 
1 files changed, 53 insertions, 19 deletions
| diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c index a353217a0d33..8a7fa1ae1ade 100644 --- a/drivers/crypto/bcm/cipher.c +++ b/drivers/crypto/bcm/cipher.c @@ -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; | 
