apm821xx: add linux kernel 5.4 testing support
[oweals/openwrt.git] / target / linux / apm821xx / patches-5.4 / 112-crypto-crypto4xx-use-GFP_KERNEL-for-big-allocations.patch
diff --git a/target/linux/apm821xx/patches-5.4/112-crypto-crypto4xx-use-GFP_KERNEL-for-big-allocations.patch b/target/linux/apm821xx/patches-5.4/112-crypto-crypto4xx-use-GFP_KERNEL-for-big-allocations.patch
new file mode 100644 (file)
index 0000000..4fc988c
--- /dev/null
@@ -0,0 +1,77 @@
+From 5bacaaea8a228bc46f402595b1694ef9128f3599 Mon Sep 17 00:00:00 2001
+Message-Id: <5bacaaea8a228bc46f402595b1694ef9128f3599.1577917078.git.chunkeey@gmail.com>
+In-Reply-To: <3913dbe4b3256ead342572f7aba726a60ab5fd43.1577917078.git.chunkeey@gmail.com>
+References: <3913dbe4b3256ead342572f7aba726a60ab5fd43.1577917078.git.chunkeey@gmail.com>
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Wed, 1 Jan 2020 22:54:54 +0100
+Subject: [PATCH 2/2] crypto: crypto4xx - use GFP_KERNEL for big allocations
+To: linux-crypto@vger.kernel.org
+Cc: Herbert Xu <herbert@gondor.apana.org.au>
+
+The driver should use GFP_KERNEL for the bigger allocation
+during the driver's crypto4xx_probe() and not GFP_ATOMIC in
+my opinion.
+
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+---
+ drivers/crypto/amcc/crypto4xx_core.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c
+index 3ce5f0a24cbc..981de43ea5e2 100644
+--- a/drivers/crypto/amcc/crypto4xx_core.c
++++ b/drivers/crypto/amcc/crypto4xx_core.c
+@@ -169,7 +169,7 @@ static u32 crypto4xx_build_pdr(struct crypto4xx_device *dev)
+       int i;
+       dev->pdr = dma_alloc_coherent(dev->core_dev->device,
+                                     sizeof(struct ce_pd) * PPC4XX_NUM_PD,
+-                                    &dev->pdr_pa, GFP_ATOMIC);
++                                    &dev->pdr_pa, GFP_KERNEL);
+       if (!dev->pdr)
+               return -ENOMEM;
+@@ -185,13 +185,13 @@ static u32 crypto4xx_build_pdr(struct crypto4xx_device *dev)
+       dev->shadow_sa_pool = dma_alloc_coherent(dev->core_dev->device,
+                                  sizeof(union shadow_sa_buf) * PPC4XX_NUM_PD,
+                                  &dev->shadow_sa_pool_pa,
+-                                 GFP_ATOMIC);
++                                 GFP_KERNEL);
+       if (!dev->shadow_sa_pool)
+               return -ENOMEM;
+       dev->shadow_sr_pool = dma_alloc_coherent(dev->core_dev->device,
+                        sizeof(struct sa_state_record) * PPC4XX_NUM_PD,
+-                       &dev->shadow_sr_pool_pa, GFP_ATOMIC);
++                       &dev->shadow_sr_pool_pa, GFP_KERNEL);
+       if (!dev->shadow_sr_pool)
+               return -ENOMEM;
+       for (i = 0; i < PPC4XX_NUM_PD; i++) {
+@@ -277,7 +277,7 @@ static u32 crypto4xx_build_gdr(struct crypto4xx_device *dev)
+ {
+       dev->gdr = dma_alloc_coherent(dev->core_dev->device,
+                                     sizeof(struct ce_gd) * PPC4XX_NUM_GD,
+-                                    &dev->gdr_pa, GFP_ATOMIC);
++                                    &dev->gdr_pa, GFP_KERNEL);
+       if (!dev->gdr)
+               return -ENOMEM;
+@@ -358,14 +358,14 @@ static u32 crypto4xx_build_sdr(struct crypto4xx_device *dev)
+       dev->scatter_buffer_va =
+               dma_alloc_coherent(dev->core_dev->device,
+                       PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD,
+-                      &dev->scatter_buffer_pa, GFP_ATOMIC);
++                      &dev->scatter_buffer_pa, GFP_KERNEL);
+       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);
++                                    &dev->sdr_pa, GFP_KERNEL);
+       if (!dev->sdr)
+               return -ENOMEM;
+-- 
+2.25.0.rc0
+