rtc: ds1374, fix lock imbalance
When i2c_smbus_read_byte_data fails in ds1374_work, we forgot to unlock the held lock. Fix that. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: Scott Wood <scottwood@freescale.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
efc0cfa6d1
commit
28df30e61b
@ -283,7 +283,7 @@ static void ds1374_work(struct work_struct *work)
|
|||||||
|
|
||||||
stat = i2c_smbus_read_byte_data(client, DS1374_REG_SR);
|
stat = i2c_smbus_read_byte_data(client, DS1374_REG_SR);
|
||||||
if (stat < 0)
|
if (stat < 0)
|
||||||
return;
|
goto unlock;
|
||||||
|
|
||||||
if (stat & DS1374_REG_SR_AF) {
|
if (stat & DS1374_REG_SR_AF) {
|
||||||
stat &= ~DS1374_REG_SR_AF;
|
stat &= ~DS1374_REG_SR_AF;
|
||||||
@ -302,7 +302,7 @@ static void ds1374_work(struct work_struct *work)
|
|||||||
out:
|
out:
|
||||||
if (!ds1374->exiting)
|
if (!ds1374->exiting)
|
||||||
enable_irq(client->irq);
|
enable_irq(client->irq);
|
||||||
|
unlock:
|
||||||
mutex_unlock(&ds1374->mutex);
|
mutex_unlock(&ds1374->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user