Commit 1451e3e5 authored by Herbert Xu's avatar Herbert Xu
Browse files

crypto: api - Add helpers to manage request flags



Add helpers so that the ON_STACK request flag management is not
duplicated all over the place.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent b93336cd
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -272,4 +272,9 @@ static inline bool crypto_tfm_req_chain(struct crypto_tfm *tfm)
	return tfm->__crt_alg->cra_flags & CRYPTO_ALG_REQ_CHAIN;
}

static inline u32 crypto_request_flags(struct crypto_async_request *req)
{
	return req->flags & ~CRYPTO_TFM_REQ_ON_STACK;
}

#endif	/* _CRYPTO_ALGAPI_H */
+24 −0
Original line number Diff line number Diff line
@@ -476,5 +476,29 @@ static inline bool crypto_tfm_is_async(struct crypto_tfm *tfm)
	return tfm->__crt_alg->cra_flags & CRYPTO_ALG_ASYNC;
}

static inline bool crypto_req_on_stack(struct crypto_async_request *req)
{
	return req->flags & CRYPTO_TFM_REQ_ON_STACK;
}

static inline void crypto_request_set_callback(
	struct crypto_async_request *req, u32 flags,
	crypto_completion_t compl, void *data)
{
	u32 keep = CRYPTO_TFM_REQ_ON_STACK;

	req->complete = compl;
	req->data = data;
	req->flags &= keep;
	req->flags |= flags & ~keep;
}

static inline void crypto_request_set_tfm(struct crypto_async_request *req,
					  struct crypto_tfm *tfm)
{
	req->tfm = tfm;
	req->flags &= ~CRYPTO_TFM_REQ_ON_STACK;
}

#endif	/* _LINUX_CRYPTO_H */