[PATCH v5 02/15] crypto: ti - Fix spinlock inconsistency in DTHEv2
T Pratham <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.kernel.cryptoapi |
|---|---|
| Message-ID | <[email protected]> |
Probe and remove functions use spin_(un)lock for acquiring the
dthe_dev_list.lock. But dthe_get_dev uses the bh variant. Change
spin_(un)lock to spin_(un)lock_bh to avoid potential deadlock when a
softIRQ process tries to acquire the already held lock.
Fixes: 52f641bc63a46 ("crypto: ti - Add driver for DTHE V2 AES Engine (ECB, CBC)")
Signed-off-by: T Pratham <[email protected]>
---
drivers/crypto/ti/dthev2-common.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/ti/dthev2-common.c b/drivers/crypto/ti/dthev2-common.c
index cc02449382673..f760d0b256728 100644
--- a/drivers/crypto/ti/dthev2-common.c
+++ b/drivers/crypto/ti/dthev2-common.c
@@ -155,9 +155,9 @@ static int dthe_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, dev_data);
- spin_lock(&dthe_dev_list.lock);
+ spin_lock_bh(&dthe_dev_list.lock);
list_add(&dev_data->list, &dthe_dev_list.dev_list);
- spin_unlock(&dthe_dev_list.lock);
+ spin_unlock_bh(&dthe_dev_list.lock);
ret = dthe_dma_init(dev_data);
if (ret)
@@ -201,9 +201,9 @@ static void dthe_remove(struct platform_device *pdev)
{
struct dthe_data *dev_data = platform_get_drvdata(pdev);
- spin_lock(&dthe_dev_list.lock);
+ spin_lock_bh(&dthe_dev_list.lock);
list_del(&dev_data->list);
- spin_unlock(&dthe_dev_list.lock);
+ spin_unlock_bh(&dthe_dev_list.lock);
dthe_unregister_algs();
--
2.34.1