A few nits: On Wed, Jan 16, 2019 at 10:50:30AM +0800, Xiongfeng Wang wrote: > This patch add a helper to (un)register a array of templates. The > following patches will use this helper to simplify the code. > > Signed-off-by: Xiongfeng Wang <xiongfeng.wang@xxxxxxxxxx> > --- > crypto/algapi.c | 27 +++++++++++++++++++++++++++ > include/crypto/algapi.h | 2 ++ > 2 files changed, 29 insertions(+) > > diff --git a/crypto/algapi.c b/crypto/algapi.c > index 8b65ada..59a6599 100644 > --- a/crypto/algapi.c > +++ b/crypto/algapi.c > @@ -494,6 +494,24 @@ int crypto_register_template(struct crypto_template *tmpl) > } > EXPORT_SYMBOL_GPL(crypto_register_template); > > +int crypto_register_templates(struct crypto_template *tmpl, int num) Can you adjust the parameter names to make it consistent with the other bulk registration functions? int crypto_register_templates(struct crypto_template *tmpls, int count) Note the 's' on 'tmpls'. > +{ > + int i, err; > + > + for (i = 0; i < num; i++) { > + err = crypto_register_template(&tmpl[i]); > + if (err) > + goto out; > + } > + return 0; > + > +out: > + for (i -= 1; i >= 0; i--) Other places write this as: 'for (--i; i >= 0; --i)' > + crypto_unregister_template(&tmpl[i]); > + return err; > +} > +EXPORT_SYMBOL_GPL(crypto_register_templates); > + > void crypto_unregister_template(struct crypto_template *tmpl) > { > struct crypto_instance *inst; > @@ -523,6 +541,15 @@ void crypto_unregister_template(struct crypto_template *tmpl) > } > EXPORT_SYMBOL_GPL(crypto_unregister_template); > > +void crypto_unregister_templates(struct crypto_template *tmpl, int num) > +{ Same here. > + int i; > + > + for (i = num - 1; i >= 0; i--) > + crypto_unregister_template(&tmpl[i]); > +} > +EXPORT_SYMBOL_GPL(crypto_unregister_templates); > + > static struct crypto_template *__crypto_lookup_template(const char *name) > { > struct crypto_template *q, *tmpl = NULL; > diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h > index 4a5ad10..e879a20 100644 > --- a/include/crypto/algapi.h > +++ b/include/crypto/algapi.h > @@ -143,7 +143,9 @@ struct ablkcipher_walk { > void crypto_mod_put(struct crypto_alg *alg); > > int crypto_register_template(struct crypto_template *tmpl); > +int crypto_register_templates(struct crypto_template *tmpl, int num); > void crypto_unregister_template(struct crypto_template *tmpl); > +void crypto_unregister_templates(struct crypto_template *tmpl, int num); And here. - Eric