Lines Matching refs:req
120 static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
122 struct crypto_acomp *tfm = crypto_acomp_reqtfm(req);
125 void **ctx = acomp_request_ctx(req);
130 if (!req->src || !req->slen || req->slen > SCOMP_SCRATCH_SIZE)
133 if (req->dst && !req->dlen)
136 if (!req->dlen || req->dlen > SCOMP_SCRATCH_SIZE)
137 req->dlen = SCOMP_SCRATCH_SIZE;
139 dlen = req->dlen;
144 scatterwalk_map_and_copy(scratch->src, req->src, 0, req->slen, 0);
146 ret = crypto_scomp_compress(scomp, scratch->src, req->slen,
147 scratch->dst, &req->dlen, *ctx);
149 ret = crypto_scomp_decompress(scomp, scratch->src, req->slen,
150 scratch->dst, &req->dlen, *ctx);
152 if (!req->dst) {
153 req->dst = sgl_alloc(req->dlen, GFP_ATOMIC, NULL);
154 if (!req->dst) {
158 } else if (req->dlen > dlen) {
162 scatterwalk_map_and_copy(scratch->dst, req->dst, 0, req->dlen,
170 static int scomp_acomp_compress(struct acomp_req *req)
172 return scomp_acomp_comp_decomp(req, 1);
175 static int scomp_acomp_decompress(struct acomp_req *req)
177 return scomp_acomp_comp_decomp(req, 0);
219 struct acomp_req *crypto_acomp_scomp_alloc_ctx(struct acomp_req *req)
221 struct crypto_acomp *acomp = crypto_acomp_reqtfm(req);
229 kfree(req);
233 *req->__ctx = ctx;
235 return req;
238 void crypto_acomp_scomp_free_ctx(struct acomp_req *req)
240 struct crypto_acomp *acomp = crypto_acomp_reqtfm(req);
244 void *ctx = *req->__ctx;