crypto: sun4i_ss_prng - convert lock to _bh in sun4i_ss_prng_generate

"Linux Kernel Mailing List" <[email protected]> Mon, 12 Feb 2018 17:22:09 +0000 (UTC)
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/2e7d1d61ea6c0f1c4da5eb82cafac750d55637a7
Commit:     2e7d1d61ea6c0f1c4da5eb82cafac750d55637a7
Parent:     dd78c832ffaf86eb6434e56de4bc3bc31f03f771
Refname:    refs/heads/master
Author:     Artem Savkov <[email protected]>
AuthorDate: Tue Feb 6 22:20:22 2018 +0100
Committer:  Herbert Xu <[email protected]>
CommitDate: Thu Feb 8 22:38:14 2018 +1100

    crypto: sun4i_ss_prng - convert lock to _bh in sun4i_ss_prng_generate
    
    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 <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
---
 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;
 }
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html