Lines Matching refs:req
113 static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
115 struct crypto_acomp *tfm = crypto_acomp_reqtfm(req);
118 void **ctx = acomp_request_ctx(req);
123 if (!req->src || !req->slen || req->slen > SCOMP_SCRATCH_SIZE)
126 if (req->dst && !req->dlen)
129 if (!req->dlen || req->dlen > SCOMP_SCRATCH_SIZE)
130 req->dlen = SCOMP_SCRATCH_SIZE;
132 dlen = req->dlen;
137 scatterwalk_map_and_copy(scratch->src, req->src, 0, req->slen, 0);
139 ret = crypto_scomp_compress(scomp, scratch->src, req->slen,
140 scratch->dst, &req->dlen, *ctx);
142 ret = crypto_scomp_decompress(scomp, scratch->src, req->slen,
143 scratch->dst, &req->dlen, *ctx);
145 if (!req->dst) {
146 req->dst = sgl_alloc(req->dlen, GFP_ATOMIC, NULL);
147 if (!req->dst) {
151 } else if (req->dlen > dlen) {
155 scatterwalk_map_and_copy(scratch->dst, req->dst, 0, req->dlen,
163 static int scomp_acomp_compress(struct acomp_req *req)
165 return scomp_acomp_comp_decomp(req, 1);
168 static int scomp_acomp_decompress(struct acomp_req *req)
170 return scomp_acomp_comp_decomp(req, 0);
212 struct acomp_req *crypto_acomp_scomp_alloc_ctx(struct acomp_req *req)
214 struct crypto_acomp *acomp = crypto_acomp_reqtfm(req);
222 kfree(req);
226 *req->__ctx = ctx;
228 return req;
231 void crypto_acomp_scomp_free_ctx(struct acomp_req *req)
233 struct crypto_acomp *acomp = crypto_acomp_reqtfm(req);
237 void *ctx = *req->__ctx;