diff options
Diffstat (limited to 'arm-sun4i_ss_prng-fixes.patch')
-rw-r--r-- | arm-sun4i_ss_prng-fixes.patch | 80 |
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; + } |