Skip to content

Commit 480afef

Browse files
committed
crypto: qat - change bufferlist logic interface
jira LE-1907 Rebuild_History Non-Buildable kernel-rt-5.14.0-284.30.1.rt14.315.el9_2 commit-author Giovanni Cabiddu <giovanni.cabiddu@intel.com> commit 3ed330d The functions qat_alg_sgl_to_bufl() and qat_alg_free_bufl() take as argument a qat_crypto_instance and a qat_crypto_request structure. These two structures are used only to get a reference to the adf_accel_dev and qat_crypto_request_buffs. In order to reuse these functions for the compression service, change the signature so that they take adf_accel_dev and qat_crypto_request_buffs. Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Reviewed-by: Wojciech Ziemba <wojciech.ziemba@intel.com> Reviewed-by: Adam Guerin <adam.guerin@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> (cherry picked from commit 3ed330d) Signed-off-by: Jonathan Maple <jmaple@ciq.com>
1 parent 7496ee0 commit 480afef

File tree

3 files changed

+49
-45
lines changed

3 files changed

+49
-45
lines changed

drivers/crypto/qat/qat_common/qat_algs.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ static void qat_aead_alg_callback(struct icp_qat_fw_la_resp *qat_resp,
673673
u8 stat_filed = qat_resp->comn_resp.comn_status;
674674
int res = 0, qat_res = ICP_QAT_FW_COMN_RESP_CRYPTO_STAT_GET(stat_filed);
675675

676-
qat_bl_free_bufl(inst, qat_req);
676+
qat_bl_free_bufl(inst->accel_dev, &qat_req->buf);
677677
if (unlikely(qat_res != ICP_QAT_FW_COMN_STATUS_FLAG_OK))
678678
res = -EBADMSG;
679679
areq->base.complete(&areq->base, res);
@@ -743,7 +743,7 @@ static void qat_skcipher_alg_callback(struct icp_qat_fw_la_resp *qat_resp,
743743
u8 stat_filed = qat_resp->comn_resp.comn_status;
744744
int res = 0, qat_res = ICP_QAT_FW_COMN_RESP_CRYPTO_STAT_GET(stat_filed);
745745

746-
qat_bl_free_bufl(inst, qat_req);
746+
qat_bl_free_bufl(inst->accel_dev, &qat_req->buf);
747747
if (unlikely(qat_res != ICP_QAT_FW_COMN_STATUS_FLAG_OK))
748748
res = -EINVAL;
749749

@@ -799,7 +799,8 @@ static int qat_alg_aead_dec(struct aead_request *areq)
799799
if (cipher_len % AES_BLOCK_SIZE != 0)
800800
return -EINVAL;
801801

802-
ret = qat_bl_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req, f);
802+
ret = qat_bl_sgl_to_bufl(ctx->inst->accel_dev, areq->src, areq->dst,
803+
&qat_req->buf, f);
803804
if (unlikely(ret))
804805
return ret;
805806

@@ -821,7 +822,7 @@ static int qat_alg_aead_dec(struct aead_request *areq)
821822

822823
ret = qat_alg_send_sym_message(qat_req, ctx->inst, &areq->base);
823824
if (ret == -ENOSPC)
824-
qat_bl_free_bufl(ctx->inst, qat_req);
825+
qat_bl_free_bufl(ctx->inst->accel_dev, &qat_req->buf);
825826

826827
return ret;
827828
}
@@ -842,7 +843,8 @@ static int qat_alg_aead_enc(struct aead_request *areq)
842843
if (areq->cryptlen % AES_BLOCK_SIZE != 0)
843844
return -EINVAL;
844845

845-
ret = qat_bl_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req, f);
846+
ret = qat_bl_sgl_to_bufl(ctx->inst->accel_dev, areq->src, areq->dst,
847+
&qat_req->buf, f);
846848
if (unlikely(ret))
847849
return ret;
848850

@@ -866,7 +868,7 @@ static int qat_alg_aead_enc(struct aead_request *areq)
866868

867869
ret = qat_alg_send_sym_message(qat_req, ctx->inst, &areq->base);
868870
if (ret == -ENOSPC)
869-
qat_bl_free_bufl(ctx->inst, qat_req);
871+
qat_bl_free_bufl(ctx->inst->accel_dev, &qat_req->buf);
870872

871873
return ret;
872874
}
@@ -1027,7 +1029,8 @@ static int qat_alg_skcipher_encrypt(struct skcipher_request *req)
10271029
if (req->cryptlen == 0)
10281030
return 0;
10291031

1030-
ret = qat_bl_sgl_to_bufl(ctx->inst, req->src, req->dst, qat_req, f);
1032+
ret = qat_bl_sgl_to_bufl(ctx->inst->accel_dev, req->src, req->dst,
1033+
&qat_req->buf, f);
10311034
if (unlikely(ret))
10321035
return ret;
10331036

@@ -1048,7 +1051,7 @@ static int qat_alg_skcipher_encrypt(struct skcipher_request *req)
10481051

10491052
ret = qat_alg_send_sym_message(qat_req, ctx->inst, &req->base);
10501053
if (ret == -ENOSPC)
1051-
qat_bl_free_bufl(ctx->inst, qat_req);
1054+
qat_bl_free_bufl(ctx->inst->accel_dev, &qat_req->buf);
10521055

10531056
return ret;
10541057
}
@@ -1093,7 +1096,8 @@ static int qat_alg_skcipher_decrypt(struct skcipher_request *req)
10931096
if (req->cryptlen == 0)
10941097
return 0;
10951098

1096-
ret = qat_bl_sgl_to_bufl(ctx->inst, req->src, req->dst, qat_req, f);
1099+
ret = qat_bl_sgl_to_bufl(ctx->inst->accel_dev, req->src, req->dst,
1100+
&qat_req->buf, f);
10971101
if (unlikely(ret))
10981102
return ret;
10991103

@@ -1115,7 +1119,7 @@ static int qat_alg_skcipher_decrypt(struct skcipher_request *req)
11151119

11161120
ret = qat_alg_send_sym_message(qat_req, ctx->inst, &req->base);
11171121
if (ret == -ENOSPC)
1118-
qat_bl_free_bufl(ctx->inst, qat_req);
1122+
qat_bl_free_bufl(ctx->inst->accel_dev, &qat_req->buf);
11191123

11201124
return ret;
11211125
}

drivers/crypto/qat/qat_common/qat_bl.c

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
#include "qat_bl.h"
1111
#include "qat_crypto.h"
1212

13-
void qat_bl_free_bufl(struct qat_crypto_instance *inst,
14-
struct qat_crypto_request *qat_req)
13+
void qat_bl_free_bufl(struct adf_accel_dev *accel_dev,
14+
struct qat_crypto_request_buffs *buf)
1515
{
16-
struct device *dev = &GET_DEV(inst->accel_dev);
17-
struct qat_alg_buf_list *bl = qat_req->buf.bl;
18-
struct qat_alg_buf_list *blout = qat_req->buf.blout;
19-
dma_addr_t blp = qat_req->buf.blp;
20-
dma_addr_t blpout = qat_req->buf.bloutp;
21-
size_t sz = qat_req->buf.sz;
22-
size_t sz_out = qat_req->buf.sz_out;
16+
struct device *dev = &GET_DEV(accel_dev);
17+
struct qat_alg_buf_list *bl = buf->bl;
18+
struct qat_alg_buf_list *blout = buf->blout;
19+
dma_addr_t blp = buf->blp;
20+
dma_addr_t blpout = buf->bloutp;
21+
size_t sz = buf->sz;
22+
size_t sz_out = buf->sz_out;
2323
int bl_dma_dir;
2424
int i;
2525

@@ -31,7 +31,7 @@ void qat_bl_free_bufl(struct qat_crypto_instance *inst,
3131

3232
dma_unmap_single(dev, blp, sz, DMA_TO_DEVICE);
3333

34-
if (!qat_req->buf.sgl_src_valid)
34+
if (!buf->sgl_src_valid)
3535
kfree(bl);
3636

3737
if (blp != blpout) {
@@ -45,18 +45,18 @@ void qat_bl_free_bufl(struct qat_crypto_instance *inst,
4545
}
4646
dma_unmap_single(dev, blpout, sz_out, DMA_TO_DEVICE);
4747

48-
if (!qat_req->buf.sgl_dst_valid)
48+
if (!buf->sgl_dst_valid)
4949
kfree(blout);
5050
}
5151
}
5252

53-
int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
53+
int qat_bl_sgl_to_bufl(struct adf_accel_dev *accel_dev,
5454
struct scatterlist *sgl,
5555
struct scatterlist *sglout,
56-
struct qat_crypto_request *qat_req,
56+
struct qat_crypto_request_buffs *buf,
5757
gfp_t flags)
5858
{
59-
struct device *dev = &GET_DEV(inst->accel_dev);
59+
struct device *dev = &GET_DEV(accel_dev);
6060
int i, sg_nctr = 0;
6161
int n = sg_nents(sgl);
6262
struct qat_alg_buf_list *bufl;
@@ -65,23 +65,23 @@ int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
6565
dma_addr_t bloutp = DMA_MAPPING_ERROR;
6666
struct scatterlist *sg;
6767
size_t sz_out, sz = struct_size(bufl, bufers, n);
68-
int node = dev_to_node(&GET_DEV(inst->accel_dev));
68+
int node = dev_to_node(&GET_DEV(accel_dev));
6969
int bufl_dma_dir;
7070

7171
if (unlikely(!n))
7272
return -EINVAL;
7373

74-
qat_req->buf.sgl_src_valid = false;
75-
qat_req->buf.sgl_dst_valid = false;
74+
buf->sgl_src_valid = false;
75+
buf->sgl_dst_valid = false;
7676

7777
if (n > QAT_MAX_BUFF_DESC) {
7878
bufl = kzalloc_node(sz, flags, node);
7979
if (unlikely(!bufl))
8080
return -ENOMEM;
8181
} else {
82-
bufl = &qat_req->buf.sgl_src.sgl_hdr;
82+
bufl = &buf->sgl_src.sgl_hdr;
8383
memset(bufl, 0, sizeof(struct qat_alg_buf_list));
84-
qat_req->buf.sgl_src_valid = true;
84+
buf->sgl_src_valid = true;
8585
}
8686

8787
bufl_dma_dir = sgl != sglout ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL;
@@ -107,9 +107,9 @@ int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
107107
blp = dma_map_single(dev, bufl, sz, DMA_TO_DEVICE);
108108
if (unlikely(dma_mapping_error(dev, blp)))
109109
goto err_in;
110-
qat_req->buf.bl = bufl;
111-
qat_req->buf.blp = blp;
112-
qat_req->buf.sz = sz;
110+
buf->bl = bufl;
111+
buf->blp = blp;
112+
buf->sz = sz;
113113
/* Handle out of place operation */
114114
if (sgl != sglout) {
115115
struct qat_alg_buf *bufers;
@@ -123,9 +123,9 @@ int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
123123
if (unlikely(!buflout))
124124
goto err_in;
125125
} else {
126-
buflout = &qat_req->buf.sgl_dst.sgl_hdr;
126+
buflout = &buf->sgl_dst.sgl_hdr;
127127
memset(buflout, 0, sizeof(struct qat_alg_buf_list));
128-
qat_req->buf.sgl_dst_valid = true;
128+
buf->sgl_dst_valid = true;
129129
}
130130

131131
bufers = buflout->bufers;
@@ -151,13 +151,13 @@ int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
151151
bloutp = dma_map_single(dev, buflout, sz_out, DMA_TO_DEVICE);
152152
if (unlikely(dma_mapping_error(dev, bloutp)))
153153
goto err_out;
154-
qat_req->buf.blout = buflout;
155-
qat_req->buf.bloutp = bloutp;
156-
qat_req->buf.sz_out = sz_out;
154+
buf->blout = buflout;
155+
buf->bloutp = bloutp;
156+
buf->sz_out = sz_out;
157157
} else {
158158
/* Otherwise set the src and dst to the same address */
159-
qat_req->buf.bloutp = qat_req->buf.blp;
160-
qat_req->buf.sz_out = 0;
159+
buf->bloutp = buf->blp;
160+
buf->sz_out = 0;
161161
}
162162
return 0;
163163

@@ -172,7 +172,7 @@ int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
172172
buflout->bufers[i].len,
173173
DMA_FROM_DEVICE);
174174

175-
if (!qat_req->buf.sgl_dst_valid)
175+
if (!buf->sgl_dst_valid)
176176
kfree(buflout);
177177

178178
err_in:
@@ -186,7 +186,7 @@ int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
186186
bufl->bufers[i].len,
187187
bufl_dma_dir);
188188

189-
if (!qat_req->buf.sgl_src_valid)
189+
if (!buf->sgl_src_valid)
190190
kfree(bufl);
191191

192192
dev_err(dev, "Failed to map buf for dma\n");

drivers/crypto/qat/qat_common/qat_bl.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
#include <linux/types.h>
77
#include "qat_crypto.h"
88

9-
void qat_bl_free_bufl(struct qat_crypto_instance *inst,
10-
struct qat_crypto_request *qat_req);
11-
int qat_bl_sgl_to_bufl(struct qat_crypto_instance *inst,
9+
void qat_bl_free_bufl(struct adf_accel_dev *accel_dev,
10+
struct qat_crypto_request_buffs *buf);
11+
int qat_bl_sgl_to_bufl(struct adf_accel_dev *accel_dev,
1212
struct scatterlist *sgl,
1313
struct scatterlist *sglout,
14-
struct qat_crypto_request *qat_req,
14+
struct qat_crypto_request_buffs *buf,
1515
gfp_t flags);
1616

1717
#endif

0 commit comments

Comments
 (0)