diff options
author | Vutla, Lokesh <lokeshvutla@ti.com> | 2015-03-31 09:52:24 +0530 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-04-01 22:22:43 +0800 |
commit | b0a3d8986a768c8b6a95ea6dd36e975bb3a44c44 (patch) | |
tree | 597b1416d5ca83864e2639df563883e1bde0bbcb /drivers/crypto | |
parent | 555fa17b2b8cc865c203de263443041eb75bc7f7 (diff) |
crypto: omap-sham - Use pm_runtime_irq_safe()
omap_sham_handle_queue() can be called as part of done_task tasklet.
During this its atomic and any calls to pm functions cannot sleep.
But there is a call to pm_runtime_get_sync() (which can sleep) in
omap_sham_handle_queue(), because of which the following appears:
" [ 116.169969] BUG: scheduling while atomic: kworker/0:2/2676/0x00000100"
Add pm_runtime_irq_safe() to avoid this.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/omap-sham.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index 3c76696ee578..21fd515068c5 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c @@ -1945,6 +1945,7 @@ static int omap_sham_probe(struct platform_device *pdev) dd->flags |= dd->pdata->flags; pm_runtime_enable(dev); + pm_runtime_irq_safe(dev); pm_runtime_get_sync(dev); rev = omap_sham_read(dd, SHA_REG_REV(dd)); pm_runtime_put_sync(&pdev->dev); |