crypto: api - Fix races in crypto_unregister_instance
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 2 Apr 2015 14:31:22 +0000 (22:31 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 3 Apr 2015 09:53:32 +0000 (17:53 +0800)
commit1f7237109951ebe8dc194461716443a5d8caf308
treed66524f7b6ed702c7939975abd53af31141599f3
parent13cf394c8c79b5655cdc76f7ae0d9869a1434103
crypto: api - Fix races in crypto_unregister_instance

There are multiple problems in crypto_unregister_instance:

1) The cra_refcnt BUG_ON check is racy and can cause crashes.
2) The cra_refcnt check shouldn't exist at all.
3) There is no reference on tmpl to protect the tmpl->free call.

This patch rewrites the function using crypto_remove_spawn which
now morphs into crypto_remove_instance.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/algapi.c