File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -1274,18 +1274,26 @@ static ssize_t quad8_signal_cable_fault_read(struct counter_device *counter,
1274
1274
struct counter_signal * signal ,
1275
1275
void * private , char * buf )
1276
1276
{
1277
- const struct quad8_iio * const priv = counter -> priv ;
1277
+ struct quad8_iio * const priv = counter -> priv ;
1278
1278
const size_t channel_id = signal -> id / 2 ;
1279
- const bool disabled = !( priv -> cable_fault_enable & BIT ( channel_id )) ;
1279
+ bool disabled ;
1280
1280
unsigned int status ;
1281
1281
unsigned int fault ;
1282
1282
1283
- if (disabled )
1283
+ mutex_lock (& priv -> lock );
1284
+
1285
+ disabled = !(priv -> cable_fault_enable & BIT (channel_id ));
1286
+
1287
+ if (disabled ) {
1288
+ mutex_unlock (& priv -> lock );
1284
1289
return - EINVAL ;
1290
+ }
1285
1291
1286
1292
/* Logic 0 = cable fault */
1287
1293
status = inb (priv -> base + QUAD8_DIFF_ENCODER_CABLE_STATUS );
1288
1294
1295
+ mutex_unlock (& priv -> lock );
1296
+
1289
1297
/* Mask respective channel and invert logic */
1290
1298
fault = !(status & BIT (channel_id ));
1291
1299
@@ -1317,6 +1325,8 @@ static ssize_t quad8_signal_cable_fault_enable_write(
1317
1325
if (ret )
1318
1326
return ret ;
1319
1327
1328
+ mutex_lock (& priv -> lock );
1329
+
1320
1330
if (enable )
1321
1331
priv -> cable_fault_enable |= BIT (channel_id );
1322
1332
else
@@ -1327,6 +1337,8 @@ static ssize_t quad8_signal_cable_fault_enable_write(
1327
1337
1328
1338
outb (cable_fault_enable , priv -> base + QUAD8_DIFF_ENCODER_CABLE_STATUS );
1329
1339
1340
+ mutex_unlock (& priv -> lock );
1341
+
1330
1342
return len ;
1331
1343
}
1332
1344
You can’t perform that action at this time.
0 commit comments