diff options
author | Mark A. Greer <mgreer@animalcreek.com> | 2014-09-23 22:25:47 +0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2014-09-24 02:28:23 +0400 |
commit | b9e3016a5369839bf923c8d2bec9d1552e50f3f3 (patch) | |
tree | dc37613321cabcd4e7c212900d6fe597e8d63b01 /drivers/nfc/trf7970a.c | |
parent | 55ef2e75ccf0d91f7b2f4251dc3b9e56df840928 (diff) | |
download | linux-b9e3016a5369839bf923c8d2bec9d1552e50f3f3.tar.xz |
NFC: trf7970a: Unlock mutex before exiting trf7970a_irq()
Recent changes to trf7970a_irq() added a couple return
paths that don't unlock the mutex that is locked when
the routine is entered. Fix this by ensuring the mutex
is always unlocked before returning.
Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/nfc/trf7970a.c')
-rw-r--r-- | drivers/nfc/trf7970a.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c index 59a7df7f023c..0fe7b957436c 100644 --- a/drivers/nfc/trf7970a.c +++ b/drivers/nfc/trf7970a.c @@ -920,7 +920,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) TRF7970A_SPECIAL_FCN_REG1, TRF7970A_SPECIAL_FCN_REG1_14_ANTICOLL); if (ret) - return ret; + goto err_unlock_exit; trf->special_fcn_reg1 = TRF7970A_SPECIAL_FCN_REG1_14_ANTICOLL; @@ -933,7 +933,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) ret = trf7970a_write(trf, TRF7970A_ISO_CTRL, iso_ctrl); if (ret) - return ret; + goto err_unlock_exit; trf->iso_ctrl = iso_ctrl; } @@ -975,6 +975,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) __func__, trf->state); } +err_unlock_exit: mutex_unlock(&trf->lock); return IRQ_HANDLED; } |