diff options
author | Sang-Hun Lee <sanlee@nvidia.com> | 2014-04-15 19:23:47 -0700 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2014-05-05 14:11:24 -0700 |
commit | 1c387b45cabcd8347b42f6cc95cb0d7cf6e17979 (patch) | |
tree | 9c545395a41419ee3135d5735a2217592206c78c /drivers/mfd/palmas.c | |
parent | c3e157f20b2bca68a0f751409ecdc00e0b06bd6a (diff) |
mfd: palmas: avoid dead lock
- Avoid waiting for the irqthread to complete
while holding a mutex lock irqthread needs
Bug 1463497
Change-Id: I6e9b948d9fca43a17d4badb37901ebb292d229ae
Signed-off-by: Sang-Hun Lee <sanlee@nvidia.com>
Reviewed-on: http://git-master/r/396765
(cherry picked from commit 786a717e885bf975012c2d76aac6ece89e258343)
Reviewed-on: http://git-master/r/403127
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/mfd/palmas.c')
-rw-r--r-- | drivers/mfd/palmas.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 2e5456d6f329..9ad2213a2ece 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -1323,7 +1323,7 @@ static void palmas_i2c_shutdown(struct i2c_client *i2c) mutex_lock(&d->shutdown_irq_lock); d->shutdown_irq = true; - disable_irq(palmas->irq); + disable_irq_nosync(palmas->irq); dev_info(d->palmas->dev, "masking all palmas interrupts\n"); for (i = 0; i < d->num_mask_regs; i++) { @@ -1336,6 +1336,7 @@ static void palmas_i2c_shutdown(struct i2c_client *i2c) d->irq_regs->mask_reg[i].reg_add); } mutex_unlock(&d->shutdown_irq_lock); + synchronize_irq(palmas->irq); palmas->shutdown = true; } |