On Mon, 19 Nov 2018 at 11:53, Corentin Labbe <clabbe@xxxxxxxxxxxx> wrote: > > Since we will need crypto_alg_get/crypto_alg_put for "locking" > crypto_alg when updating stats, we need it to be via linux/crypto.h > This seems backwards to me. Surely, crypto stats are permitted to use the internal crypto API? > Signed-off-by: Corentin Labbe <clabbe@xxxxxxxxxxxx> > --- > crypto/internal.h | 12 ------------ > include/linux/crypto.h | 12 ++++++++++++ > 2 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/crypto/internal.h b/crypto/internal.h > index ef769b5e8ad3..d81f033aeb5c 100644 > --- a/crypto/internal.h > +++ b/crypto/internal.h > @@ -91,18 +91,6 @@ unsigned int crypto_alg_extsize(struct crypto_alg *alg); > int crypto_type_has_alg(const char *name, const struct crypto_type *frontend, > u32 type, u32 mask); > > -static inline struct crypto_alg *crypto_alg_get(struct crypto_alg *alg) > -{ > - refcount_inc(&alg->cra_refcnt); > - return alg; > -} > - > -static inline void crypto_alg_put(struct crypto_alg *alg) > -{ > - if (refcount_dec_and_test(&alg->cra_refcnt) && alg->cra_destroy) > - alg->cra_destroy(alg); > -} > - > static inline int crypto_tmpl_get(struct crypto_template *tmpl) > { > return try_module_get(tmpl->module); > diff --git a/include/linux/crypto.h b/include/linux/crypto.h > index 3634ad6fe202..ac8f4168a831 100644 > --- a/include/linux/crypto.h > +++ b/include/linux/crypto.h > @@ -607,6 +607,18 @@ int crypto_unregister_algs(struct crypto_alg *algs, int count); > */ > int crypto_has_alg(const char *name, u32 type, u32 mask); > > +static inline struct crypto_alg *crypto_alg_get(struct crypto_alg *alg) > +{ > + refcount_inc(&alg->cra_refcnt); > + return alg; > +} > + > +static inline void crypto_alg_put(struct crypto_alg *alg) > +{ > + if (refcount_dec_and_test(&alg->cra_refcnt) && alg->cra_destroy) > + alg->cra_destroy(alg); > +} > + > /* > * Transforms: user-instantiated objects which encapsulate algorithms > * and core processing logic. Managed via crypto_alloc_*() and > -- > 2.18.1 >