diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2012-11-05 17:11:41 +0900 |
---|---|---|
committer | Chanwoo Choi <cw00.choi@samsung.com> | 2012-11-20 16:00:44 +0900 |
commit | be31cc0bc9e6d24d7bd069a4eae81aa9fcf5d2cd (patch) | |
tree | 50b5c513f64c926e6d838135b781321f6841dfde /drivers/extcon | |
parent | f4a75d2eb7b1e2206094b901be09adb31ba63681 (diff) |
extcon: arizona: unlock mutex on error path in arizona_micdet()
If regmap_read() failed, arizona_micdet() returns IRQ_NONE
leaving &info->lock mutex locked as opposed to all other return paths.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Diffstat (limited to 'drivers/extcon')
-rw-r--r-- | drivers/extcon/extcon-arizona.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c index cdab9e59829..d876a54a8bd 100644 --- a/drivers/extcon/extcon-arizona.c +++ b/drivers/extcon/extcon-arizona.c @@ -166,6 +166,7 @@ static irqreturn_t arizona_micdet(int irq, void *data) ret = regmap_read(arizona->regmap, ARIZONA_MIC_DETECT_3, &val); if (ret != 0) { dev_err(arizona->dev, "Failed to read MICDET: %d\n", ret); + mutex_unlock(&info->lock); return IRQ_NONE; } |