aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-12-19 18:43:38 -0500
committerDavid S. Miller <davem@davemloft.net>2012-12-19 18:43:38 -0500
commitb3a37947074fa0a488d6c7ede58125b2278ab4e8 (patch)
tree86a425ab58db944d95f4757138f142f5e7f455d4 /arch/sparc
parentce6889515d5d481a5bd8ce5913dfed18f08310ea (diff)
sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in DES code.
We use the FPU and therefore cannot sleep during the crypto loops. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/crypto/des_glue.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/sparc/crypto/des_glue.c b/arch/sparc/crypto/des_glue.c
index 41524cebcc49..3065bc61f9d3 100644
--- a/arch/sparc/crypto/des_glue.c
+++ b/arch/sparc/crypto/des_glue.c
@@ -100,6 +100,7 @@ static int __ecb_crypt(struct blkcipher_desc *desc,
100 100
101 blkcipher_walk_init(&walk, dst, src, nbytes); 101 blkcipher_walk_init(&walk, dst, src, nbytes);
102 err = blkcipher_walk_virt(desc, &walk); 102 err = blkcipher_walk_virt(desc, &walk);
103 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
103 104
104 if (encrypt) 105 if (encrypt)
105 des_sparc64_load_keys(&ctx->encrypt_expkey[0]); 106 des_sparc64_load_keys(&ctx->encrypt_expkey[0]);
@@ -147,6 +148,7 @@ static int cbc_encrypt(struct blkcipher_desc *desc,
147 148
148 blkcipher_walk_init(&walk, dst, src, nbytes); 149 blkcipher_walk_init(&walk, dst, src, nbytes);
149 err = blkcipher_walk_virt(desc, &walk); 150 err = blkcipher_walk_virt(desc, &walk);
151 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
150 152
151 des_sparc64_load_keys(&ctx->encrypt_expkey[0]); 153 des_sparc64_load_keys(&ctx->encrypt_expkey[0]);
152 while ((nbytes = walk.nbytes)) { 154 while ((nbytes = walk.nbytes)) {
@@ -177,6 +179,7 @@ static int cbc_decrypt(struct blkcipher_desc *desc,
177 179
178 blkcipher_walk_init(&walk, dst, src, nbytes); 180 blkcipher_walk_init(&walk, dst, src, nbytes);
179 err = blkcipher_walk_virt(desc, &walk); 181 err = blkcipher_walk_virt(desc, &walk);
182 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
180 183
181 des_sparc64_load_keys(&ctx->decrypt_expkey[0]); 184 des_sparc64_load_keys(&ctx->decrypt_expkey[0]);
182 while ((nbytes = walk.nbytes)) { 185 while ((nbytes = walk.nbytes)) {
@@ -266,6 +269,7 @@ static int __ecb3_crypt(struct blkcipher_desc *desc,
266 269
267 blkcipher_walk_init(&walk, dst, src, nbytes); 270 blkcipher_walk_init(&walk, dst, src, nbytes);
268 err = blkcipher_walk_virt(desc, &walk); 271 err = blkcipher_walk_virt(desc, &walk);
272 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
269 273
270 if (encrypt) 274 if (encrypt)
271 K = &ctx->encrypt_expkey[0]; 275 K = &ctx->encrypt_expkey[0];
@@ -317,6 +321,7 @@ static int cbc3_encrypt(struct blkcipher_desc *desc,
317 321
318 blkcipher_walk_init(&walk, dst, src, nbytes); 322 blkcipher_walk_init(&walk, dst, src, nbytes);
319 err = blkcipher_walk_virt(desc, &walk); 323 err = blkcipher_walk_virt(desc, &walk);
324 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
320 325
321 K = &ctx->encrypt_expkey[0]; 326 K = &ctx->encrypt_expkey[0];
322 des3_ede_sparc64_load_keys(K); 327 des3_ede_sparc64_load_keys(K);
@@ -352,6 +357,7 @@ static int cbc3_decrypt(struct blkcipher_desc *desc,
352 357
353 blkcipher_walk_init(&walk, dst, src, nbytes); 358 blkcipher_walk_init(&walk, dst, src, nbytes);
354 err = blkcipher_walk_virt(desc, &walk); 359 err = blkcipher_walk_virt(desc, &walk);
360 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
355 361
356 K = &ctx->decrypt_expkey[0]; 362 K = &ctx->decrypt_expkey[0];
357 des3_ede_sparc64_load_keys(K); 363 des3_ede_sparc64_load_keys(K);