From 06e63aad5776947cbbd500d57d77f925b2f72629 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Fri, 31 May 2019 20:13:55 +0200 Subject: apm821xx: backport accepted linux-crypto patches to 4.19 This patch brings the crypto4xx driver up to the latest upstream changes. Signed-off-by: Christian Lamparter --- ...to4xx-get-rid-of-redundant-using_sd-varia.patch | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch (limited to 'target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch') diff --git a/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch b/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch new file mode 100644 index 0000000000..4b246a793d --- /dev/null +++ b/target/linux/apm821xx/patches-4.19/023-0012-crypto-crypto4xx-get-rid-of-redundant-using_sd-varia.patch @@ -0,0 +1,63 @@ +From 38cf5533d7a876f75088bacc1277046f30005f28 Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Mon, 22 Apr 2019 13:26:01 +0200 +Subject: [PATCH 12/15] crypto: crypto4xx - get rid of redundant using_sd + variable + +using_sd is used as a stand-in for sa_command_0.bf.scatter +that we need to set anyway, so we might as well just prevent +double-accounting. + +Signed-off-by: Christian Lamparter +Signed-off-by: Herbert Xu +--- + drivers/crypto/amcc/crypto4xx_core.c | 6 ++---- + drivers/crypto/amcc/crypto4xx_core.h | 1 - + 2 files changed, 2 insertions(+), 5 deletions(-) + +--- a/drivers/crypto/amcc/crypto4xx_core.c ++++ b/drivers/crypto/amcc/crypto4xx_core.c +@@ -539,7 +539,7 @@ static void crypto4xx_cipher_done(struct + + req = skcipher_request_cast(pd_uinfo->async_req); + +- if (pd_uinfo->using_sd) { ++ if (pd_uinfo->sa_va->sa_command_0.bf.scatter) { + crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo, + req->cryptlen, req->dst); + } else { +@@ -593,7 +593,7 @@ static void crypto4xx_aead_done(struct c + u32 icv[AES_BLOCK_SIZE]; + int err = 0; + +- if (pd_uinfo->using_sd) { ++ if (pd_uinfo->sa_va->sa_command_0.bf.scatter) { + crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo, + pd->pd_ctl_len.bf.pkt_len, + dst); +@@ -887,7 +887,6 @@ int crypto4xx_build_pd(struct crypto_asy + * we know application give us dst a whole piece of memory + * no need to use scatter ring. + */ +- pd_uinfo->using_sd = 0; + pd_uinfo->first_sd = 0xffffffff; + sa->sa_command_0.bf.scatter = 0; + pd->dest = (u32)dma_map_page(dev->core_dev->device, +@@ -901,7 +900,6 @@ int crypto4xx_build_pd(struct crypto_asy + u32 sd_idx = fst_sd; + nbytes = datalen; + sa->sa_command_0.bf.scatter = 1; +- pd_uinfo->using_sd = 1; + pd_uinfo->first_sd = fst_sd; + sd = crypto4xx_get_sdp(dev, &sd_dma, sd_idx); + pd->dest = sd_dma; +--- a/drivers/crypto/amcc/crypto4xx_core.h ++++ b/drivers/crypto/amcc/crypto4xx_core.h +@@ -64,7 +64,6 @@ union shadow_sa_buf { + struct pd_uinfo { + struct crypto4xx_device *dev; + u32 state; +- u32 using_sd; + u32 first_gd; /* first gather discriptor + used by this packet */ + u32 num_gd; /* number of gather discriptor -- cgit v1.2.3