|
@@ -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);
|
|
}
|
|
}
|
|
|
|
|