summaryrefslogtreecommitdiffstats
path: root/arm-sun4i_ss_prng-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'arm-sun4i_ss_prng-fixes.patch')
-rw-r--r--arm-sun4i_ss_prng-fixes.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/arm-sun4i_ss_prng-fixes.patch b/arm-sun4i_ss_prng-fixes.patch
new file mode 100644
index 000000000..ed4cc0369
--- /dev/null
+++ b/arm-sun4i_ss_prng-fixes.patch
@@ -0,0 +1,80 @@
+From patchwork Tue Feb 6 21:20:21 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [1/2] sun4i_ss_prng: fix return value of sun4i_ss_prng_generate
+From: Artem Savkov <artem.savkov@gmail.com>
+X-Patchwork-Id: 10204151
+Message-Id: <20180206212022.1309-2-artem.savkov@gmail.com>
+To: Corentin Labbe <clabbe.montjoie@gmail.com>
+Cc: linux-kernel@vger.kernel.org, Artem Savkov <artem.savkov@gmail.com>,
+ Herbert Xu <herbert@gondor.apana.org.au>,
+ linux-arm-kernel@lists.infradead.org, linux-crypto@vger.kernel.org
+Date: Tue, 6 Feb 2018 22:20:21 +0100
+
+According to crypto/rng.h generate function should return 0 on success
+and < 0 on error.
+
+Fixes: b8ae5c7387ad ("crypto: sun4i-ss - support the Security System PRNG")
+Signed-off-by: Artem Savkov <artem.savkov@gmail.com>
+Acked-by: Corentin Labbe <clabbe.montjoie@gmail.com>
+---
+ drivers/crypto/sunxi-ss/sun4i-ss-prng.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-prng.c b/drivers/crypto/sunxi-ss/sun4i-ss-prng.c
+index 0d01d1624252..5754e0b92fb0 100644
+--- a/drivers/crypto/sunxi-ss/sun4i-ss-prng.c
++++ b/drivers/crypto/sunxi-ss/sun4i-ss-prng.c
+@@ -52,5 +52,5 @@ int sun4i_ss_prng_generate(struct crypto_rng *tfm, const u8 *src,
+
+ writel(0, ss->base + SS_CTL);
+ spin_unlock(&ss->slock);
+- return dlen;
++ return 0;
+ }
+From patchwork Tue Feb 6 21:20:22 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [2/2] sun4i_ss_prng: convert lock to _bh in sun4i_ss_prng_generate
+From: Artem Savkov <artem.savkov@gmail.com>
+X-Patchwork-Id: 10204145
+Message-Id: <20180206212022.1309-3-artem.savkov@gmail.com>
+To: Corentin Labbe <clabbe.montjoie@gmail.com>
+Cc: linux-kernel@vger.kernel.org, Artem Savkov <artem.savkov@gmail.com>,
+ Herbert Xu <herbert@gondor.apana.org.au>,
+ linux-arm-kernel@lists.infradead.org, linux-crypto@vger.kernel.org
+Date: Tue, 6 Feb 2018 22:20:22 +0100
+
+Lockdep detects a possible deadlock in sun4i_ss_prng_generate() and
+throws an "inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage" warning.
+Disabling softirqs to fix this.
+
+Fixes: b8ae5c7387ad ("crypto: sun4i-ss - support the Security System PRNG")
+Signed-off-by: Artem Savkov <artem.savkov@gmail.com>
+---
+ drivers/crypto/sunxi-ss/sun4i-ss-prng.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-prng.c b/drivers/crypto/sunxi-ss/sun4i-ss-prng.c
+index 5754e0b92fb0..63d636424161 100644
+--- a/drivers/crypto/sunxi-ss/sun4i-ss-prng.c
++++ b/drivers/crypto/sunxi-ss/sun4i-ss-prng.c
+@@ -28,7 +28,7 @@ int sun4i_ss_prng_generate(struct crypto_rng *tfm, const u8 *src,
+ algt = container_of(alg, struct sun4i_ss_alg_template, alg.rng);
+ ss = algt->ss;
+
+- spin_lock(&ss->slock);
++ spin_lock_bh(&ss->slock);
+
+ writel(mode, ss->base + SS_CTL);
+
+@@ -51,6 +51,6 @@ int sun4i_ss_prng_generate(struct crypto_rng *tfm, const u8 *src,
+ }
+
+ writel(0, ss->base + SS_CTL);
+- spin_unlock(&ss->slock);
++ spin_unlock_bh(&ss->slock);
+ return 0;
+ }