X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=crypto%2Falgapi.c;h=056571b85445a20bf80f0054c0b2365a666edfde;hb=d0d3bc65afcdd69bdd3b5bebdf8b3ee3680efa0e;hp=9d4a9fe913f859e5896a31db7ed4a8e93b70d286;hpb=2416dc85107bf862acde82ffb8b0c86193487fd5;p=~andy%2Flinux diff --git a/crypto/algapi.c b/crypto/algapi.c index 9d4a9fe913f..056571b8544 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;