Skip to content

Commit c964444

Browse files
committed
crypto: qat - Remove dst_null support
Remove the unused dst_null support. Signed-off-by: Herbert Xu <[email protected]>
1 parent 02c9742 commit c964444

File tree

4 files changed

+1
-259
lines changed

4 files changed

+1
-259
lines changed

drivers/crypto/intel/qat/qat_common/qat_bl.c

Lines changed: 0 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -251,162 +251,3 @@ int qat_bl_sgl_to_bufl(struct adf_accel_dev *accel_dev,
251251
extra_dst_buff, sz_extra_dst_buff,
252252
sskip, dskip, flags);
253253
}
254-
255-
static void qat_bl_sgl_unmap(struct adf_accel_dev *accel_dev,
256-
struct qat_alg_buf_list *bl)
257-
{
258-
struct device *dev = &GET_DEV(accel_dev);
259-
int n = bl->num_bufs;
260-
int i;
261-
262-
for (i = 0; i < n; i++)
263-
if (!dma_mapping_error(dev, bl->buffers[i].addr))
264-
dma_unmap_single(dev, bl->buffers[i].addr,
265-
bl->buffers[i].len, DMA_FROM_DEVICE);
266-
}
267-
268-
static int qat_bl_sgl_map(struct adf_accel_dev *accel_dev,
269-
struct scatterlist *sgl,
270-
struct qat_alg_buf_list **bl)
271-
{
272-
struct device *dev = &GET_DEV(accel_dev);
273-
struct qat_alg_buf_list *bufl;
274-
int node = dev_to_node(dev);
275-
struct scatterlist *sg;
276-
int n, i, sg_nctr;
277-
size_t sz;
278-
279-
n = sg_nents(sgl);
280-
sz = struct_size(bufl, buffers, n);
281-
bufl = kzalloc_node(sz, GFP_KERNEL, node);
282-
if (unlikely(!bufl))
283-
return -ENOMEM;
284-
285-
for (i = 0; i < n; i++)
286-
bufl->buffers[i].addr = DMA_MAPPING_ERROR;
287-
288-
sg_nctr = 0;
289-
for_each_sg(sgl, sg, n, i) {
290-
int y = sg_nctr;
291-
292-
if (!sg->length)
293-
continue;
294-
295-
bufl->buffers[y].addr = dma_map_single(dev, sg_virt(sg),
296-
sg->length,
297-
DMA_FROM_DEVICE);
298-
bufl->buffers[y].len = sg->length;
299-
if (unlikely(dma_mapping_error(dev, bufl->buffers[y].addr)))
300-
goto err_map;
301-
sg_nctr++;
302-
}
303-
bufl->num_bufs = sg_nctr;
304-
bufl->num_mapped_bufs = sg_nctr;
305-
306-
*bl = bufl;
307-
308-
return 0;
309-
310-
err_map:
311-
for (i = 0; i < n; i++)
312-
if (!dma_mapping_error(dev, bufl->buffers[i].addr))
313-
dma_unmap_single(dev, bufl->buffers[i].addr,
314-
bufl->buffers[i].len,
315-
DMA_FROM_DEVICE);
316-
kfree(bufl);
317-
*bl = NULL;
318-
319-
return -ENOMEM;
320-
}
321-
322-
static void qat_bl_sgl_free_unmap(struct adf_accel_dev *accel_dev,
323-
struct scatterlist *sgl,
324-
struct qat_alg_buf_list *bl,
325-
bool free_bl)
326-
{
327-
if (bl) {
328-
qat_bl_sgl_unmap(accel_dev, bl);
329-
330-
if (free_bl)
331-
kfree(bl);
332-
}
333-
if (sgl)
334-
sgl_free(sgl);
335-
}
336-
337-
static int qat_bl_sgl_alloc_map(struct adf_accel_dev *accel_dev,
338-
struct scatterlist **sgl,
339-
struct qat_alg_buf_list **bl,
340-
unsigned int dlen,
341-
gfp_t gfp)
342-
{
343-
struct scatterlist *dst;
344-
int ret;
345-
346-
dst = sgl_alloc(dlen, gfp, NULL);
347-
if (!dst) {
348-
dev_err(&GET_DEV(accel_dev), "sg_alloc failed\n");
349-
return -ENOMEM;
350-
}
351-
352-
ret = qat_bl_sgl_map(accel_dev, dst, bl);
353-
if (ret)
354-
goto err;
355-
356-
*sgl = dst;
357-
358-
return 0;
359-
360-
err:
361-
sgl_free(dst);
362-
*sgl = NULL;
363-
return ret;
364-
}
365-
366-
int qat_bl_realloc_map_new_dst(struct adf_accel_dev *accel_dev,
367-
struct scatterlist **sg,
368-
unsigned int dlen,
369-
struct qat_request_buffs *qat_bufs,
370-
gfp_t gfp)
371-
{
372-
struct device *dev = &GET_DEV(accel_dev);
373-
dma_addr_t new_blp = DMA_MAPPING_ERROR;
374-
struct qat_alg_buf_list *new_bl;
375-
struct scatterlist *new_sg;
376-
size_t new_bl_size;
377-
int ret;
378-
379-
ret = qat_bl_sgl_alloc_map(accel_dev, &new_sg, &new_bl, dlen, gfp);
380-
if (ret)
381-
return ret;
382-
383-
new_bl_size = struct_size(new_bl, buffers, new_bl->num_bufs);
384-
385-
/* Map new firmware SGL descriptor */
386-
new_blp = dma_map_single(dev, new_bl, new_bl_size, DMA_TO_DEVICE);
387-
if (unlikely(dma_mapping_error(dev, new_blp)))
388-
goto err;
389-
390-
/* Unmap old firmware SGL descriptor */
391-
dma_unmap_single(dev, qat_bufs->bloutp, qat_bufs->sz_out, DMA_TO_DEVICE);
392-
393-
/* Free and unmap old scatterlist */
394-
qat_bl_sgl_free_unmap(accel_dev, *sg, qat_bufs->blout,
395-
!qat_bufs->sgl_dst_valid);
396-
397-
qat_bufs->sgl_dst_valid = false;
398-
qat_bufs->blout = new_bl;
399-
qat_bufs->bloutp = new_blp;
400-
qat_bufs->sz_out = new_bl_size;
401-
402-
*sg = new_sg;
403-
404-
return 0;
405-
err:
406-
qat_bl_sgl_free_unmap(accel_dev, new_sg, new_bl, true);
407-
408-
if (!dma_mapping_error(dev, new_blp))
409-
dma_unmap_single(dev, new_blp, new_bl_size, DMA_TO_DEVICE);
410-
411-
return -ENOMEM;
412-
}

drivers/crypto/intel/qat/qat_common/qat_bl.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,4 @@ static inline gfp_t qat_algs_alloc_flags(struct crypto_async_request *req)
6565
return req->flags & CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL : GFP_ATOMIC;
6666
}
6767

68-
int qat_bl_realloc_map_new_dst(struct adf_accel_dev *accel_dev,
69-
struct scatterlist **newd,
70-
unsigned int dlen,
71-
struct qat_request_buffs *qat_bufs,
72-
gfp_t gfp);
73-
7468
#endif

drivers/crypto/intel/qat/qat_common/qat_comp_algs.c

Lines changed: 1 addition & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ struct qat_compression_ctx {
2929
int (*qat_comp_callback)(struct qat_compression_req *qat_req, void *resp);
3030
};
3131

32-
struct qat_dst {
33-
bool is_null;
34-
int resubmitted;
35-
};
36-
3732
struct qat_compression_req {
3833
u8 req[QAT_COMP_REQ_SIZE];
3934
struct qat_compression_ctx *qat_compression_ctx;
@@ -42,8 +37,6 @@ struct qat_compression_req {
4237
enum direction dir;
4338
int actual_dlen;
4439
struct qat_alg_req alg_req;
45-
struct work_struct resubmit;
46-
struct qat_dst dst;
4740
};
4841

4942
static int qat_alg_send_dc_message(struct qat_compression_req *qat_req,
@@ -60,46 +53,6 @@ static int qat_alg_send_dc_message(struct qat_compression_req *qat_req,
6053
return qat_alg_send_message(alg_req);
6154
}
6255

63-
static void qat_comp_resubmit(struct work_struct *work)
64-
{
65-
struct qat_compression_req *qat_req =
66-
container_of(work, struct qat_compression_req, resubmit);
67-
struct qat_compression_ctx *ctx = qat_req->qat_compression_ctx;
68-
struct adf_accel_dev *accel_dev = ctx->inst->accel_dev;
69-
struct qat_request_buffs *qat_bufs = &qat_req->buf;
70-
struct qat_compression_instance *inst = ctx->inst;
71-
struct acomp_req *areq = qat_req->acompress_req;
72-
struct crypto_acomp *tfm = crypto_acomp_reqtfm(areq);
73-
unsigned int dlen = CRYPTO_ACOMP_DST_MAX;
74-
u8 *req = qat_req->req;
75-
dma_addr_t dfbuf;
76-
int ret;
77-
78-
areq->dlen = dlen;
79-
80-
dev_dbg(&GET_DEV(accel_dev), "[%s][%s] retry NULL dst request - dlen = %d\n",
81-
crypto_tfm_alg_driver_name(crypto_acomp_tfm(tfm)),
82-
qat_req->dir == COMPRESSION ? "comp" : "decomp", dlen);
83-
84-
ret = qat_bl_realloc_map_new_dst(accel_dev, &areq->dst, dlen, qat_bufs,
85-
qat_algs_alloc_flags(&areq->base));
86-
if (ret)
87-
goto err;
88-
89-
qat_req->dst.resubmitted = true;
90-
91-
dfbuf = qat_req->buf.bloutp;
92-
qat_comp_override_dst(req, dfbuf, dlen);
93-
94-
ret = qat_alg_send_dc_message(qat_req, inst, &areq->base);
95-
if (ret != -ENOSPC)
96-
return;
97-
98-
err:
99-
qat_bl_free_bufl(accel_dev, qat_bufs);
100-
acomp_request_complete(areq, ret);
101-
}
102-
10356
static void qat_comp_generic_callback(struct qat_compression_req *qat_req,
10457
void *resp)
10558
{
@@ -131,21 +84,6 @@ static void qat_comp_generic_callback(struct qat_compression_req *qat_req,
13184

13285
areq->dlen = 0;
13386

134-
if (qat_req->dir == DECOMPRESSION && qat_req->dst.is_null) {
135-
if (cmp_err == ERR_CODE_OVERFLOW_ERROR) {
136-
if (qat_req->dst.resubmitted) {
137-
dev_dbg(&GET_DEV(accel_dev),
138-
"Output does not fit destination buffer\n");
139-
res = -EOVERFLOW;
140-
goto end;
141-
}
142-
143-
INIT_WORK(&qat_req->resubmit, qat_comp_resubmit);
144-
adf_misc_wq_queue_work(&qat_req->resubmit);
145-
return;
146-
}
147-
}
148-
14987
if (unlikely(status != ICP_QAT_FW_COMN_STATUS_FLAG_OK))
15088
goto end;
15189

@@ -245,29 +183,9 @@ static int qat_comp_alg_compress_decompress(struct acomp_req *areq, enum directi
245183
if (!areq->src || !slen)
246184
return -EINVAL;
247185

248-
if (areq->dst && !dlen)
186+
if (!areq->dst || !dlen)
249187
return -EINVAL;
250188

251-
qat_req->dst.is_null = false;
252-
253-
/* Handle acomp requests that require the allocation of a destination
254-
* buffer. The size of the destination buffer is double the source
255-
* buffer (rounded up to the size of a page) to fit the decompressed
256-
* output or an expansion on the data for compression.
257-
*/
258-
if (!areq->dst) {
259-
qat_req->dst.is_null = true;
260-
261-
dlen = round_up(2 * slen, PAGE_SIZE);
262-
areq->dst = sgl_alloc(dlen, f, NULL);
263-
if (!areq->dst)
264-
return -ENOMEM;
265-
266-
dlen -= dhdr + dftr;
267-
areq->dlen = dlen;
268-
qat_req->dst.resubmitted = false;
269-
}
270-
271189
if (dir == COMPRESSION) {
272190
params.extra_dst_buff = inst->dc_data->ovf_buff_p;
273191
ovf_buff_sz = inst->dc_data->ovf_buff_sz;
@@ -329,7 +247,6 @@ static struct acomp_alg qat_acomp[] = { {
329247
.exit = qat_comp_alg_exit_tfm,
330248
.compress = qat_comp_alg_compress,
331249
.decompress = qat_comp_alg_decompress,
332-
.dst_free = sgl_free,
333250
.reqsize = sizeof(struct qat_compression_req),
334251
}};
335252

drivers/crypto/intel/qat/qat_common/qat_comp_req.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,6 @@ static inline void qat_comp_create_req(void *ctx, void *req, u64 src, u32 slen,
2525
req_pars->out_buffer_sz = dlen;
2626
}
2727

28-
static inline void qat_comp_override_dst(void *req, u64 dst, u32 dlen)
29-
{
30-
struct icp_qat_fw_comp_req *fw_req = req;
31-
struct icp_qat_fw_comp_req_params *req_pars = &fw_req->comp_pars;
32-
33-
fw_req->comn_mid.dest_data_addr = dst;
34-
fw_req->comn_mid.dst_length = dlen;
35-
req_pars->out_buffer_sz = dlen;
36-
}
37-
3828
static inline void qat_comp_create_compression_req(void *ctx, void *req,
3929
u64 src, u32 slen,
4030
u64 dst, u32 dlen,

0 commit comments

Comments
 (0)