diff options
| author | David S. Miller <davem@davemloft.net> | 2012-12-19 18:43:38 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-12-19 18:43:38 -0500 |
| commit | b3a37947074fa0a488d6c7ede58125b2278ab4e8 (patch) | |
| tree | 86a425ab58db944d95f4757138f142f5e7f455d4 | |
| parent | ce6889515d5d481a5bd8ce5913dfed18f08310ea (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>
| -rw-r--r-- | arch/sparc/crypto/des_glue.c | 6 |
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); |
