diff options
author | Christian Lamparter <chunkeey@gmail.com> | 2021-12-20 20:43:07 +0100 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2021-12-27 13:51:41 +0100 |
commit | 2593d510e2490e03b8fd7276a1a7080ac7e1ffe8 (patch) | |
tree | e62478b89ead751666f4c59ec4549811bc33e34b /target/linux/apm821xx/patches-5.4/111-crypto-crypto4xx-reduce-memory-fragmentation.patch | |
parent | ebc0ce118f11ebdd602ea7db49eca5f6adbc51f0 (diff) | |
download | upstream-2593d510e2490e03b8fd7276a1a7080ac7e1ffe8.tar.gz upstream-2593d510e2490e03b8fd7276a1a7080ac7e1ffe8.tar.bz2 upstream-2593d510e2490e03b8fd7276a1a7080ac7e1ffe8.zip |
apm821xx: drop 5.4 config and patches
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'target/linux/apm821xx/patches-5.4/111-crypto-crypto4xx-reduce-memory-fragmentation.patch')
-rw-r--r-- | target/linux/apm821xx/patches-5.4/111-crypto-crypto4xx-reduce-memory-fragmentation.patch | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/target/linux/apm821xx/patches-5.4/111-crypto-crypto4xx-reduce-memory-fragmentation.patch b/target/linux/apm821xx/patches-5.4/111-crypto-crypto4xx-reduce-memory-fragmentation.patch deleted file mode 100644 index 4d23b8816a..0000000000 --- a/target/linux/apm821xx/patches-5.4/111-crypto-crypto4xx-reduce-memory-fragmentation.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 3913dbe4b3256ead342572f7aba726a60ab5fd43 Mon Sep 17 00:00:00 2001 -Message-Id: <3913dbe4b3256ead342572f7aba726a60ab5fd43.1577917078.git.chunkeey@gmail.com> -From: Christian Lamparter <chunkeey@gmail.com> -Date: Wed, 1 Jan 2020 22:28:28 +0100 -Subject: [PATCH 1/2] crypto: crypto4xx - reduce memory fragmentation -To: linux-crypto@vger.kernel.org -Cc: Herbert Xu <herbert@gondor.apana.org.au> - -With recent kernels (>5.2), the driver fails to probe, as the -allocation of the driver's scatter buffer fails with -ENOMEM. - -This happens in crypto4xx_build_sdr(). Where the driver tries -to get 512KiB (=PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD) of -continuous memory. This big chunk is by design, since the driver -uses this circumstance in the crypto4xx_copy_pkt_to_dst() to -its advantage: -"all scatter-buffers are all neatly organized in one big -continuous ringbuffer; So scatterwalk_map_and_copy() can be -instructed to copy a range of buffers in one go." - -The PowerPC arch does not have support for DMA_CMA. Hence, -this patch reorganizes the order in which the memory -allocations are done. Since the driver itself is responsible -for some of the issues. - -Signed-off-by: Christian Lamparter <chunkeey@gmail.com> ---- - drivers/crypto/amcc/crypto4xx_core.c | 27 +++++++++++++-------------- - 1 file changed, 13 insertions(+), 14 deletions(-) - ---- a/drivers/crypto/amcc/crypto4xx_core.c -+++ b/drivers/crypto/amcc/crypto4xx_core.c -@@ -286,7 +286,8 @@ static u32 crypto4xx_build_gdr(struct cr - - static inline void crypto4xx_destroy_gdr(struct crypto4xx_device *dev) - { -- dma_free_coherent(dev->core_dev->device, -+ if (dev->gdr) -+ dma_free_coherent(dev->core_dev->device, - sizeof(struct ce_gd) * PPC4XX_NUM_GD, - dev->gdr, dev->gdr_pa); - } -@@ -354,13 +355,6 @@ static u32 crypto4xx_build_sdr(struct cr - { - int i; - -- /* alloc memory for scatter descriptor ring */ -- dev->sdr = dma_alloc_coherent(dev->core_dev->device, -- sizeof(struct ce_sd) * PPC4XX_NUM_SD, -- &dev->sdr_pa, GFP_ATOMIC); -- if (!dev->sdr) -- return -ENOMEM; -- - dev->scatter_buffer_va = - dma_alloc_coherent(dev->core_dev->device, - PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD, -@@ -368,6 +362,13 @@ static u32 crypto4xx_build_sdr(struct cr - if (!dev->scatter_buffer_va) - return -ENOMEM; - -+ /* alloc memory for scatter descriptor ring */ -+ dev->sdr = dma_alloc_coherent(dev->core_dev->device, -+ sizeof(struct ce_sd) * PPC4XX_NUM_SD, -+ &dev->sdr_pa, GFP_ATOMIC); -+ if (!dev->sdr) -+ return -ENOMEM; -+ - for (i = 0; i < PPC4XX_NUM_SD; i++) { - dev->sdr[i].ptr = dev->scatter_buffer_pa + - PPC4XX_SD_BUFFER_SIZE * i; -@@ -1439,16 +1440,15 @@ static int crypto4xx_probe(struct platfo - spin_lock_init(&core_dev->lock); - INIT_LIST_HEAD(&core_dev->dev->alg_list); - ratelimit_default_init(&core_dev->dev->aead_ratelimit); -+ rc = crypto4xx_build_sdr(core_dev->dev); -+ if (rc) -+ goto err_build_sdr; - rc = crypto4xx_build_pdr(core_dev->dev); - if (rc) -- goto err_build_pdr; -+ goto err_build_sdr; - - rc = crypto4xx_build_gdr(core_dev->dev); - if (rc) -- goto err_build_pdr; -- -- rc = crypto4xx_build_sdr(core_dev->dev); -- if (rc) - goto err_build_sdr; - - /* Init tasklet for bottom half processing */ -@@ -1493,7 +1493,6 @@ err_iomap: - err_build_sdr: - crypto4xx_destroy_sdr(core_dev->dev); - crypto4xx_destroy_gdr(core_dev->dev); --err_build_pdr: - crypto4xx_destroy_pdr(core_dev->dev); - kfree(core_dev->dev); - err_alloc_dev: |