diff options
| author | Herbert Xu <herbert@gondor.apana.org.au> | 2005-09-01 17:43:25 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2005-09-01 17:43:25 -0700 | 
| commit | eb6f1160ddb2fdadf50f350da79d0796c37f17e2 (patch) | |
| tree | e7b048b089b4b0ec9f121eea9a7f5864999dbac3 | |
| parent | 64baf3cfea974d2b9e671ccfdbc03e030ea5ebc6 (diff) | |
| download | blackbird-op-linux-eb6f1160ddb2fdadf50f350da79d0796c37f17e2.tar.gz blackbird-op-linux-eb6f1160ddb2fdadf50f350da79d0796c37f17e2.zip | |
[CRYPTO]: Use CRYPTO_TFM_REQ_MAY_SLEEP where appropriate
This patch goes through the current users of the crypto layer and sets
CRYPTO_TFM_REQ_MAY_SLEEP at crypto_alloc_tfm() where all crypto operations
are performed in process context.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/block/cryptoloop.c | 6 | ||||
| -rw-r--r-- | drivers/md/dm-crypt.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/airo.c | 2 | ||||
| -rw-r--r-- | fs/nfsd/nfs4recover.c | 2 | ||||
| -rw-r--r-- | net/sunrpc/auth_gss/gss_krb5_crypto.c | 2 | ||||
| -rw-r--r-- | security/seclvl.c | 2 | 
6 files changed, 12 insertions, 9 deletions
| diff --git a/drivers/block/cryptoloop.c b/drivers/block/cryptoloop.c index 5be6f998d8c5..3d4261c39f16 100644 --- a/drivers/block/cryptoloop.c +++ b/drivers/block/cryptoloop.c @@ -57,9 +57,11 @@ cryptoloop_init(struct loop_device *lo, const struct loop_info64 *info)  	mode = strsep(&cmsp, "-");  	if (mode == NULL || strcmp(mode, "cbc") == 0) -		tfm = crypto_alloc_tfm(cipher, CRYPTO_TFM_MODE_CBC); +		tfm = crypto_alloc_tfm(cipher, CRYPTO_TFM_MODE_CBC | +					       CRYPTO_TFM_REQ_MAY_SLEEP);  	else if (strcmp(mode, "ecb") == 0) -		tfm = crypto_alloc_tfm(cipher, CRYPTO_TFM_MODE_ECB); +		tfm = crypto_alloc_tfm(cipher, CRYPTO_TFM_MODE_ECB | +					       CRYPTO_TFM_REQ_MAY_SLEEP);  	if (tfm == NULL)  		return -EINVAL; diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index d0a4bab220e5..b82bc3150476 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -144,7 +144,7 @@ static int crypt_iv_essiv_ctr(struct crypt_config *cc, struct dm_target *ti,  	}  	/* Hash the cipher key with the given hash algorithm */ -	hash_tfm = crypto_alloc_tfm(opts, 0); +	hash_tfm = crypto_alloc_tfm(opts, CRYPTO_TFM_REQ_MAY_SLEEP);  	if (hash_tfm == NULL) {  		ti->error = PFX "Error initializing ESSIV hash";  		return -EINVAL; @@ -172,7 +172,8 @@ static int crypt_iv_essiv_ctr(struct crypt_config *cc, struct dm_target *ti,  	/* Setup the essiv_tfm with the given salt */  	essiv_tfm = crypto_alloc_tfm(crypto_tfm_alg_name(cc->tfm), -	                             CRYPTO_TFM_MODE_ECB); +	                             CRYPTO_TFM_MODE_ECB | +	                             CRYPTO_TFM_REQ_MAY_SLEEP);  	if (essiv_tfm == NULL) {  		ti->error = PFX "Error allocating crypto tfm for ESSIV";  		kfree(salt); @@ -587,7 +588,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv)  		goto bad1;  	} -	tfm = crypto_alloc_tfm(cipher, crypto_flags); +	tfm = crypto_alloc_tfm(cipher, crypto_flags | CRYPTO_TFM_REQ_MAY_SLEEP);  	if (!tfm) {  		ti->error = PFX "Error allocating crypto tfm";  		goto bad1; diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index df20adcd0730..7fdb85dda4e5 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -1301,7 +1301,7 @@ static int micsetup(struct airo_info *ai) {  	int i;  	if (ai->tfm == NULL) -	        ai->tfm = crypto_alloc_tfm("aes", 0); +	        ai->tfm = crypto_alloc_tfm("aes", CRYPTO_TFM_REQ_MAY_SLEEP);          if (ai->tfm == NULL) {                  printk(KERN_ERR "airo: failed to load transform for AES\n"); diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index 57ed50fe7f85..02132f33320d 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -93,7 +93,7 @@ nfs4_make_rec_clidname(char *dname, struct xdr_netobj *clname)  	dprintk("NFSD: nfs4_make_rec_clidname for %.*s\n",  			clname->len, clname->data); -	tfm = crypto_alloc_tfm("md5", 0); +	tfm = crypto_alloc_tfm("md5", CRYPTO_TFM_REQ_MAY_SLEEP);  	if (tfm == NULL)  		goto out;  	cksum.len = crypto_tfm_alg_digestsize(tfm); diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c index 5a7265aeaf83..7ad74449b18f 100644 --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c @@ -160,7 +160,7 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,  				" unsupported checksum %d", cksumtype);  			goto out;  	} -	if (!(tfm = crypto_alloc_tfm(cksumname, 0))) +	if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP)))  		goto out;  	cksum->len = crypto_tfm_alg_digestsize(tfm);  	if ((cksum->data = kmalloc(cksum->len, GFP_KERNEL)) == NULL) diff --git a/security/seclvl.c b/security/seclvl.c index c8e87b22c9bd..96b1f2122f67 100644 --- a/security/seclvl.c +++ b/security/seclvl.c @@ -321,7 +321,7 @@ plaintext_to_sha1(unsigned char *hash, const char *plaintext, int len)  			      "bytes.\n", len, PAGE_SIZE);  		return -ENOMEM;  	} -	tfm = crypto_alloc_tfm("sha1", 0); +	tfm = crypto_alloc_tfm("sha1", CRYPTO_TFM_REQ_MAY_SLEEP);  	if (tfm == NULL) {  		seclvl_printk(0, KERN_ERR,  			      "Failed to load transform for SHA1\n"); | 

