diff options
author | Daniel Ribeiro <drwyrm@gmail.com> | 2009-06-23 12:30:58 -0300 |
---|---|---|
committer | Samuel Ortiz <sameol@linux.intel.com> | 2009-07-03 10:56:20 +0200 |
commit | 4d9a53a0f4c1030e2893c842aa7b22edb7bb41e1 (patch) | |
tree | 1f0200ac8f281db01da39b8fc4aa46e7199a4fb4 /drivers/mfd | |
parent | ad7e738de6051b398ea9bbfbf4ff0a06562a2682 (diff) |
mfd: fix pcap adc locking
Release the lock on error.
Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/ezx-pcap.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c index 671a7efe86a8..c1de4afa89a6 100644 --- a/drivers/mfd/ezx-pcap.c +++ b/drivers/mfd/ezx-pcap.c @@ -238,8 +238,10 @@ static irqreturn_t pcap_adc_irq(int irq, void *_pcap) mutex_lock(&pcap->adc_mutex); req = pcap->adc_queue[pcap->adc_head]; - if (WARN(!req, KERN_WARNING "adc irq without pending request\n")) + if (WARN(!req, KERN_WARNING "adc irq without pending request\n")) { + mutex_unlock(&pcap->adc_mutex); return IRQ_HANDLED; + } /* read requested channels results */ ezx_pcap_read(pcap, PCAP_REG_ADC, &tmp); |