aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/omap-sham.c
diff options
context:
space:
mode:
authorVutla, Lokesh <lokeshvutla@ti.com>2015-03-31 09:52:24 +0530
committerHerbert Xu <herbert@gondor.apana.org.au>2015-04-01 22:22:43 +0800
commitb0a3d8986a768c8b6a95ea6dd36e975bb3a44c44 (patch)
tree597b1416d5ca83864e2639df563883e1bde0bbcb /drivers/crypto/omap-sham.c
parentcrypto: sha-mb - mark Multi buffer SHA1 helper cipher (diff)
downloadlinux-dev-b0a3d8986a768c8b6a95ea6dd36e975bb3a44c44.tar.xz
linux-dev-b0a3d8986a768c8b6a95ea6dd36e975bb3a44c44.zip
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/omap-sham.c')
-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)
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);