aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVutla, Lokesh <lokeshvutla@ti.com>2015-03-31 00:22:24 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2015-04-01 10:22:43 -0400
commitb0a3d8986a768c8b6a95ea6dd36e975bb3a44c44 (patch)
tree597b1416d5ca83864e2639df563883e1bde0bbcb
parent555fa17b2b8cc865c203de263443041eb75bc7f7 (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>
-rw-r--r--drivers/crypto/omap-sham.c1
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)
1945 dd->flags |= dd->pdata->flags; 1945 dd->flags |= dd->pdata->flags;
1946 1946
1947 pm_runtime_enable(dev); 1947 pm_runtime_enable(dev);
1948 pm_runtime_irq_safe(dev);
1948 pm_runtime_get_sync(dev); 1949 pm_runtime_get_sync(dev);
1949 rev = omap_sham_read(dd, SHA_REG_REV(dd)); 1950 rev = omap_sham_read(dd, SHA_REG_REV(dd));
1950 pm_runtime_put_sync(&pdev->dev); 1951 pm_runtime_put_sync(&pdev->dev);