diff options
| author | Artem Savkov <artem.savkov@gmail.com> | 2018-02-06 16:20:22 -0500 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-02-08 06:38:14 -0500 |
| commit | 2e7d1d61ea6c0f1c4da5eb82cafac750d55637a7 (patch) | |
| tree | ea4c8d58c13dd00bf49d573749869c06d4549016 | |
| parent | dd78c832ffaf86eb6434e56de4bc3bc31f03f771 (diff) | |
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 <artem.savkov@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
| -rw-r--r-- | drivers/crypto/sunxi-ss/sun4i-ss-prng.c | 4 |
1 files 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, | |||
| 28 | algt = container_of(alg, struct sun4i_ss_alg_template, alg.rng); | 28 | algt = container_of(alg, struct sun4i_ss_alg_template, alg.rng); |
| 29 | ss = algt->ss; | 29 | ss = algt->ss; |
| 30 | 30 | ||
| 31 | spin_lock(&ss->slock); | 31 | spin_lock_bh(&ss->slock); |
| 32 | 32 | ||
| 33 | writel(mode, ss->base + SS_CTL); | 33 | writel(mode, ss->base + SS_CTL); |
| 34 | 34 | ||
| @@ -51,6 +51,6 @@ int sun4i_ss_prng_generate(struct crypto_rng *tfm, const u8 *src, | |||
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | writel(0, ss->base + SS_CTL); | 53 | writel(0, ss->base + SS_CTL); |
| 54 | spin_unlock(&ss->slock); | 54 | spin_unlock_bh(&ss->slock); |
| 55 | return 0; | 55 | return 0; |
| 56 | } | 56 | } |
