aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2006-05-20 21:57:20 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2006-06-26 03:34:41 -0400
commit996e2523cc347cc98237d2da3454aedc779fdcba (patch)
tree8f58774666bfe6c166fc051bede26d779b827e4f /crypto
parentd913ea0d6b6a48dd6eed8fc5e299b8b10e049186 (diff)
[CRYPTO] api: Allow replacement when registering new algorithms
We already allow asynchronous removal of existing algorithm modules. By allowing the replacement of existing algorithms, we can replace algorithms without having to wait for for all existing users to complete. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/api.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/api.c b/crypto/api.c
index 735fdedd8217..c11ec1fd4f18 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -267,13 +267,13 @@ int crypto_register_alg(struct crypto_alg *alg)
267 down_write(&crypto_alg_sem); 267 down_write(&crypto_alg_sem);
268 268
269 list_for_each_entry(q, &crypto_alg_list, cra_list) { 269 list_for_each_entry(q, &crypto_alg_list, cra_list) {
270 if (!strcmp(q->cra_driver_name, alg->cra_driver_name)) { 270 if (q == alg) {
271 ret = -EEXIST; 271 ret = -EEXIST;
272 goto out; 272 goto out;
273 } 273 }
274 } 274 }
275 275
276 list_add_tail(&alg->cra_list, &crypto_alg_list); 276 list_add(&alg->cra_list, &crypto_alg_list);
277out: 277out:
278 up_write(&crypto_alg_sem); 278 up_write(&crypto_alg_sem);
279 return ret; 279 return ret;