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, nr_sgs, DMA_BIDIRECTIONAL);
241 dma_unmap_sg(mc->dev, areq->src, nr_sgs, DMA_TO_DEVICE);
242 dma_unmap_sg(mc->dev, areq->dst, nr_sgd, 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,
262 void *areq)
265 struct skcipher_request *breq = container_of(areq, struct skcipher_request, base);
275 int meson_skdecrypt(struct skcipher_request *areq)
277 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq);
279 struct meson_cipher_req_ctx *rctx = skcipher_request_ctx(areq);
284 if (meson_cipher_need_fallback(areq))
285 return meson_cipher_do_fallback(areq);
290 return crypto_transfer_skcipher_request_to_engine(engine, areq);
293 int meson_skencrypt(struct skcipher_request *areq)
295 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq);
297 struct meson_cipher_req_ctx *rctx = skcipher_request_ctx(areq);
302 if (meson_cipher_need_fallback(areq))
303 return meson_cipher_do_fallback(areq);
308 return crypto_transfer_skcipher_request_to_engine(engine, areq);