summary refs log tree commit diff
path: root/drivers/counter/104-quad-8.c
diff options
context:
space:
mode:
authorSyed Nayyar Waris <syednwaris@gmail.com>2020-03-16 18:20:46 +0530
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2020-06-14 14:46:52 +0100
commitd5ed76adb926a90fada98f518abc1ab6ef07d28f (patch)
treea3b3c3651094b7546273cd4b09d54735354ad3ef /drivers/counter/104-quad-8.c
parent708d98932893cea609386cefdfd190f757f5a61c (diff)
downloadlinux-d5ed76adb926a90fada98f518abc1ab6ef07d28f.tar.gz
counter: 104-quad-8: Add lock guards - filter clock prescaler
Add lock protection from race conditions to the 104-quad-8 counter
driver for filter clock prescaler code changes. Mutex calls used for
protection.

Signed-off-by: Syed Nayyar Waris <syednwaris@gmail.com>
Fixes: de65d0556343 ("counter: 104-quad-8: Support Filter Clock Prescaler")
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/counter/104-quad-8.c')
-rw-r--r--drivers/counter/104-quad-8.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/counter/104-quad-8.c b/drivers/counter/104-quad-8.c
index 9364dc188f8f..d22cfae1b019 100644
--- a/drivers/counter/104-quad-8.c
+++ b/drivers/counter/104-quad-8.c
@@ -1365,6 +1365,8 @@ static ssize_t quad8_signal_fck_prescaler_write(struct counter_device *counter,
 	if (ret)
 		return ret;
 
+	mutex_lock(&priv->lock);
+
 	priv->fck_prescaler[channel_id] = prescaler;
 
 	/* Reset Byte Pointer */
@@ -1375,6 +1377,8 @@ static ssize_t quad8_signal_fck_prescaler_write(struct counter_device *counter,
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_PRESET_PSC,
 	     base_offset + 1);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }