Lines Matching defs:areq

25 static bool meson_cipher_need_fallback(struct skcipher_request *areq)
27 struct scatterlist *src_sg = areq->src;
28 struct scatterlist *dst_sg = areq->dst;
30 if (areq->cryptlen == 0)
58 static int meson_cipher_do_fallback(struct skcipher_request *areq)
60 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq);
62 struct meson_cipher_req_ctx *rctx = skcipher_request_ctx(areq);
72 skcipher_request_set_callback(&rctx->fallback_req, areq->base.flags,
73 areq->base.complete, areq->base.data);
74 skcipher_request_set_crypt(&rctx->fallback_req, areq->src, areq->dst,
75 areq->cryptlen, areq->iv);
84 static int meson_cipher(struct skcipher_request *areq)
86 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq);
88 struct meson_cipher_req_ctx *rctx = skcipher_request_ctx(areq);
94 struct scatterlist *src_sg = areq->src;
95 struct scatterlist *dst_sg = areq->dst;
107 crypto_tfm_alg_name(areq->base.tfm),
108 areq->cryptlen,
130 if (areq->iv && ivsize > 0) {
131 if (ivsize > areq->cryptlen) {
132 dev_err(mc->dev, "invalid ivsize=%d vs len=%d\n", ivsize, areq->cryptlen);
136 memcpy(bkeyiv + 32, areq->iv, ivsize);
144 offset = areq->cryptlen - ivsize;
145 scatterwalk_map_and_copy(backup_iv, areq->src, offset,
177 if (areq->src == areq->dst) {
178 nr_sgs = dma_map_sg(mc->dev, areq->src, sg_nents(areq->src),
187 nr_sgs = dma_map_sg(mc->dev, areq->src, sg_nents(areq->src),
194 nr_sgd = dma_map_sg(mc->dev, areq->dst, sg_nents(areq->dst),
203 src_sg = areq->src;
204 dst_sg = areq->dst;
205 len = areq->cryptlen;
238 if (areq->src == areq->dst) {
239 dma_unmap_sg(mc->dev, areq->src, sg_nents(areq->src), DMA_BIDIRECTIONAL);
241 dma_unmap_sg(mc->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE);
242 dma_unmap_sg(mc->dev, areq->dst, sg_nents(areq->dst), DMA_FROM_DEVICE);
245 if (areq->iv && ivsize > 0) {
247 memcpy(areq->iv, backup_iv, ivsize);
249 scatterwalk_map_and_copy(areq->iv, areq->dst,
250 areq->cryptlen - ivsize,
261 int meson_handle_cipher_request(struct crypto_engine *engine, void *areq)
264 struct skcipher_request *breq = container_of(areq, struct skcipher_request, base);
274 int meson_skdecrypt(struct skcipher_request *areq)
276 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq);
278 struct meson_cipher_req_ctx *rctx = skcipher_request_ctx(areq);
283 if (meson_cipher_need_fallback(areq))
284 return meson_cipher_do_fallback(areq);
289 return crypto_transfer_skcipher_request_to_engine(engine, areq);
292 int meson_skencrypt(struct skcipher_request *areq)
294 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq);
296 struct meson_cipher_req_ctx *rctx = skcipher_request_ctx(areq);
301 if (meson_cipher_need_fallback(areq))
302 return meson_cipher_do_fallback(areq);
307 return crypto_transfer_skcipher_request_to_engine(engine, areq);