diff options
author | Michal Simek <[email protected]> | 2012-03-30 12:10:03 +0200 |
---|---|---|
committer | Michal Simek <[email protected]> | 2012-03-30 12:10:03 +0200 |
commit | 6a4770e335bd4df0a4577146f76e116ab6e23f40 (patch) | |
tree | 305056c20b6ccf3a4fed00e9e32f3a1dd039cd70 /crypto/algapi.c | |
parent | ac64a9caa55bdfd8d24784f25c68cb7919ddabe3 (diff) | |
parent | f52b69f86e27903d6896ed5fa7cd280fec8de532 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next
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) } EXPORT_SYMBOL_GPL(crypto_unregister_alg); +int crypto_register_algs(struct crypto_alg *algs, int count) +{ + int i, ret; + + for (i = 0; i < count; i++) { + ret = crypto_register_alg(&algs[i]); + if (ret) + goto err; + } + + return 0; + +err: + for (--i; i >= 0; --i) + crypto_unregister_alg(&algs[i]); + + return ret; +} +EXPORT_SYMBOL_GPL(crypto_register_algs); + +int crypto_unregister_algs(struct crypto_alg *algs, int count) +{ + int i, ret; + + for (i = 0; i < count; i++) { + ret = crypto_unregister_alg(&algs[i]); + if (ret) + pr_err("Failed to unregister %s %s: %d\n", + algs[i].cra_driver_name, algs[i].cra_name, ret); + } + + return 0; +} +EXPORT_SYMBOL_GPL(crypto_unregister_algs); + int crypto_register_template(struct crypto_template *tmpl) { struct crypto_template *q; |