diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 16:20:43 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 16:20:43 -0400 |
| commit | b8716614a7cc2fc15ea2a518edd04755fb08d922 (patch) | |
| tree | 2a8a5d04066b2bd589ba2ebbeb228e2a6a178ec9 /crypto/algapi.c | |
| parent | 31f6765266417c0d99f0e922fe82848a7c9c2ae9 (diff) | |
| parent | 2dc9b5dbdef09840de852a4f0cc6a9c9eece7220 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto update from Herbert Xu:
"* sha512 bug fixes (already in your tree).
* SHA224/SHA384 AEAD support in caam.
* X86-64 optimised version of Camellia.
* Tegra AES support.
* Bulk algorithm registration interface to make driver registration easier.
* padata race fixes.
* Misc fixes."
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (31 commits)
padata: Fix race on sequence number wrap
padata: Fix race in the serialization path
crypto: camellia - add assembler implementation for x86_64
crypto: camellia - rename camellia.c to camellia_generic.c
crypto: camellia - fix checkpatch warnings
crypto: camellia - rename camellia module to camellia_generic
crypto: tcrypt - add more camellia tests
crypto: testmgr - add more camellia test vectors
crypto: camellia - simplify key setup and CAMELLIA_ROUNDSM macro
crypto: twofish-x86_64/i586 - set alignmask to zero
crypto: blowfish-x86_64 - set alignmask to zero
crypto: serpent-sse2 - combine ablk_*_init functions
crypto: blowfish-x86_64 - use crypto_[un]register_algs
crypto: twofish-x86_64-3way - use crypto_[un]register_algs
crypto: serpent-sse2 - use crypto_[un]register_algs
crypto: serpent-sse2 - remove dead code from serpent_sse2_glue.c::serpent_sse2_init()
crypto: twofish-x86 - Remove dead code from twofish_glue_3way.c::init()
crypto: In crypto_add_alg(), 'exact' wants to be initialized to 0
crypto: caam - fix gcc 4.6 warning
crypto: Add bulk algorithm registration interface
...
Diffstat (limited to 'crypto/algapi.c')
| -rw-r--r-- | crypto/algapi.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/crypto/algapi.c b/crypto/algapi.c index 9d4a9fe913f8..056571b85445 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c | |||
| @@ -405,6 +405,41 @@ int crypto_unregister_alg(struct crypto_alg *alg) | |||
| 405 | } | 405 | } |
| 406 | EXPORT_SYMBOL_GPL(crypto_unregister_alg); | 406 | EXPORT_SYMBOL_GPL(crypto_unregister_alg); |
| 407 | 407 | ||
| 408 | int crypto_register_algs(struct crypto_alg *algs, int count) | ||
| 409 | { | ||
| 410 | int i, ret; | ||
| 411 | |||
| 412 | for (i = 0; i < count; i++) { | ||
| 413 | ret = crypto_register_alg(&algs[i]); | ||
| 414 | if (ret) | ||
| 415 | goto err; | ||
| 416 | } | ||
| 417 | |||
| 418 | return 0; | ||
| 419 | |||
| 420 | err: | ||
| 421 | for (--i; i >= 0; --i) | ||
| 422 | crypto_unregister_alg(&algs[i]); | ||
| 423 | |||
| 424 | return ret; | ||
| 425 | } | ||
| 426 | EXPORT_SYMBOL_GPL(crypto_register_algs); | ||
| 427 | |||
| 428 | int crypto_unregister_algs(struct crypto_alg *algs, int count) | ||
| 429 | { | ||
| 430 | int i, ret; | ||
| 431 | |||
| 432 | for (i = 0; i < count; i++) { | ||
| 433 | ret = crypto_unregister_alg(&algs[i]); | ||
| 434 | if (ret) | ||
| 435 | pr_err("Failed to unregister %s %s: %d\n", | ||
| 436 | algs[i].cra_driver_name, algs[i].cra_name, ret); | ||
| 437 | } | ||
| 438 | |||
| 439 | return 0; | ||
| 440 | } | ||
| 441 | EXPORT_SYMBOL_GPL(crypto_unregister_algs); | ||
| 442 | |||
| 408 | int crypto_register_template(struct crypto_template *tmpl) | 443 | int crypto_register_template(struct crypto_template *tmpl) |
| 409 | { | 444 | { |
| 410 | struct crypto_template *q; | 445 | struct crypto_template *q; |
