diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-14 19:04:14 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-14 19:04:14 -0400 |
| commit | dafe344d2288f0ebc0e3d4c6a5eb15bc82189c53 (patch) | |
| tree | 3bccc69ab1d228520094fe83bbc969e9a0a8b432 | |
| parent | e79323bd87808fdfbc68ce6c5371bd224d9672ee (diff) | |
| parent | eb4a5346e777784f1b5ae9fd0c29b96344bdc3ae (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull bmc2835 crypto fix from Herbert Xu:
"This fixes a potential boot crash on bcm2835 due to the recent change
that now causes hardware RNGs to be accessed on registration"
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
hwrng: bcm2835 - fix oops when rng h/w is accessed during registration
| -rw-r--r-- | drivers/char/hw_random/bcm2835-rng.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c index 8c3b255e629a..e900961cdd2e 100644 --- a/drivers/char/hw_random/bcm2835-rng.c +++ b/drivers/char/hw_random/bcm2835-rng.c | |||
| @@ -61,18 +61,18 @@ static int bcm2835_rng_probe(struct platform_device *pdev) | |||
| 61 | } | 61 | } |
| 62 | bcm2835_rng_ops.priv = (unsigned long)rng_base; | 62 | bcm2835_rng_ops.priv = (unsigned long)rng_base; |
| 63 | 63 | ||
| 64 | /* set warm-up count & enable */ | ||
| 65 | __raw_writel(RNG_WARMUP_COUNT, rng_base + RNG_STATUS); | ||
| 66 | __raw_writel(RNG_RBGEN, rng_base + RNG_CTRL); | ||
| 67 | |||
| 64 | /* register driver */ | 68 | /* register driver */ |
| 65 | err = hwrng_register(&bcm2835_rng_ops); | 69 | err = hwrng_register(&bcm2835_rng_ops); |
| 66 | if (err) { | 70 | if (err) { |
| 67 | dev_err(dev, "hwrng registration failed\n"); | 71 | dev_err(dev, "hwrng registration failed\n"); |
| 68 | iounmap(rng_base); | 72 | iounmap(rng_base); |
| 69 | } else { | 73 | } else |
| 70 | dev_info(dev, "hwrng registered\n"); | 74 | dev_info(dev, "hwrng registered\n"); |
| 71 | 75 | ||
| 72 | /* set warm-up count & enable */ | ||
| 73 | __raw_writel(RNG_WARMUP_COUNT, rng_base + RNG_STATUS); | ||
| 74 | __raw_writel(RNG_RBGEN, rng_base + RNG_CTRL); | ||
| 75 | } | ||
| 76 | return err; | 76 | return err; |
| 77 | } | 77 | } |
| 78 | 78 | ||
