linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 2/3] counter: 104-quad-8: Add lock guards - differential encoder
@ 2020-03-16 12:50 Syed Nayyar Waris
  2020-03-18  2:18 ` William Breathitt Gray
  0 siblings, 1 reply; 4+ messages in thread
From: Syed Nayyar Waris @ 2020-03-16 12:50 UTC (permalink / raw)
  To: vilhelm.gray; +Cc: jic23, linux-iio, linux-kernel

Add lock protection from race conditions to 104-quad-8 counter driver
for differential encoder status code changes. Mutex lock calls used for
protection.

Signed-off-by: Syed Nayyar Waris <syednwaris@gmail.com>
---
Changes in v5:
 - Change spin lock calls to mutex lock calls.
 - Modify the title description.

 drivers/counter/104-quad-8.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/counter/104-quad-8.c b/drivers/counter/104-quad-8.c
index 9dab190..21b2e3e 100644
--- a/drivers/counter/104-quad-8.c
+++ b/drivers/counter/104-quad-8.c
@@ -1151,18 +1151,26 @@ static ssize_t quad8_signal_cable_fault_read(struct counter_device *counter,
 					     struct counter_signal *signal,
 					     void *private, char *buf)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const size_t channel_id = signal->id / 2;
-	const bool disabled = !(priv->cable_fault_enable & BIT(channel_id));
+	bool disabled;
 	unsigned int status;
 	unsigned int fault;
 
-	if (disabled)
+	mutex_lock(&priv->lock);
+
+	disabled = !(priv->cable_fault_enable & BIT(channel_id));
+
+	if (disabled) {
+		mutex_unlock(&priv->lock);
 		return -EINVAL;
+	}
 
 	/* Logic 0 = cable fault */
 	status = inb(priv->base + QUAD8_DIFF_ENCODER_CABLE_STATUS);
 
+	mutex_unlock(&priv->lock);
+
 	/* Mask respective channel and invert logic */
 	fault = !(status & BIT(channel_id));
 
@@ -1194,6 +1202,8 @@ static ssize_t quad8_signal_cable_fault_enable_write(
 	if (ret)
 		return ret;
 
+	mutex_lock(&priv->lock);
+
 	if (enable)
 		priv->cable_fault_enable |= BIT(channel_id);
 	else
@@ -1204,6 +1214,8 @@ static ssize_t quad8_signal_cable_fault_enable_write(
 
 	outb(cable_fault_enable, priv->base + QUAD8_DIFF_ENCODER_CABLE_STATUS);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v5 2/3] counter: 104-quad-8: Add lock guards - differential encoder
  2020-03-16 12:50 [PATCH v5 2/3] counter: 104-quad-8: Add lock guards - differential encoder Syed Nayyar Waris
@ 2020-03-18  2:18 ` William Breathitt Gray
  2020-06-07  5:22   ` Syed Nayyar Waris
  0 siblings, 1 reply; 4+ messages in thread
From: William Breathitt Gray @ 2020-03-18  2:18 UTC (permalink / raw)
  To: Syed Nayyar Waris, jic23; +Cc: linux-iio, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 686 bytes --]

On Mon, Mar 16, 2020 at 06:20:06PM +0530, Syed Nayyar Waris wrote:
> Add lock protection from race conditions to 104-quad-8 counter driver
> for differential encoder status code changes. Mutex lock calls used for
> protection.
> 
> Signed-off-by: Syed Nayyar Waris <syednwaris@gmail.com>
> ---
> Changes in v5:
>  - Change spin lock calls to mutex lock calls.
>  - Modify the title description.

Looks like the Fixes tags were dropped in these last two patches. I
suppose they aren't really necessary though since these features haven't
yet made it out of the IIO tree, so no need to backport these fixes.

Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v5 2/3] counter: 104-quad-8: Add lock guards - differential encoder
  2020-03-18  2:18 ` William Breathitt Gray
@ 2020-06-07  5:22   ` Syed Nayyar Waris
  2020-06-14 13:46     ` Jonathan Cameron
  0 siblings, 1 reply; 4+ messages in thread
From: Syed Nayyar Waris @ 2020-06-07  5:22 UTC (permalink / raw)
  To: William Breathitt Gray
  Cc: Jonathan Cameron, linux-iio, Linux Kernel Mailing List

On Wed, Mar 18, 2020 at 7:48 AM William Breathitt Gray
<vilhelm.gray@gmail.com> wrote:
>
> On Mon, Mar 16, 2020 at 06:20:06PM +0530, Syed Nayyar Waris wrote:
> > Add lock protection from race conditions to 104-quad-8 counter driver
> > for differential encoder status code changes. Mutex lock calls used for
> > protection.
> >
> > Signed-off-by: Syed Nayyar Waris <syednwaris@gmail.com>
> > ---
> > Changes in v5:
> >  - Change spin lock calls to mutex lock calls.
> >  - Modify the title description.
>
> Looks like the Fixes tags were dropped in these last two patches. I
> suppose they aren't really necessary though since these features haven't
> yet made it out of the IIO tree, so no need to backport these fixes.
>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>

Adding the 'Fixes' tag:

Fixes: bbef69e088c3 ("counter: 104-quad-8: Support Differential
Encoder Cable Status")

Regards
Syed Nayyar Waris

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v5 2/3] counter: 104-quad-8: Add lock guards - differential encoder
  2020-06-07  5:22   ` Syed Nayyar Waris
@ 2020-06-14 13:46     ` Jonathan Cameron
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2020-06-14 13:46 UTC (permalink / raw)
  To: Syed Nayyar Waris
  Cc: William Breathitt Gray, linux-iio, Linux Kernel Mailing List

On Sun, 7 Jun 2020 10:52:57 +0530
Syed Nayyar Waris <syednwaris@gmail.com> wrote:

> On Wed, Mar 18, 2020 at 7:48 AM William Breathitt Gray
> <vilhelm.gray@gmail.com> wrote:
> >
> > On Mon, Mar 16, 2020 at 06:20:06PM +0530, Syed Nayyar Waris wrote:  
> > > Add lock protection from race conditions to 104-quad-8 counter driver
> > > for differential encoder status code changes. Mutex lock calls used for
> > > protection.
> > >
> > > Signed-off-by: Syed Nayyar Waris <syednwaris@gmail.com>
> > > ---
> > > Changes in v5:
> > >  - Change spin lock calls to mutex lock calls.
> > >  - Modify the title description.  
> >
> > Looks like the Fixes tags were dropped in these last two patches. I
> > suppose they aren't really necessary though since these features haven't
> > yet made it out of the IIO tree, so no need to backport these fixes.
> >
> > Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>  
> 
> Adding the 'Fixes' tag:
> 
> Fixes: bbef69e088c3 ("counter: 104-quad-8: Support Differential
> Encoder Cable Status")
That doesn't seem to be the correct hash upstream though it exists in my
local tree. I'm not sure quite what happened here (and don't care enough
to try and figure it out), so I've fixed to match the upstream hash.

Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> 
> Regards
> Syed Nayyar Waris


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-06-14 13:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-16 12:50 [PATCH v5 2/3] counter: 104-quad-8: Add lock guards - differential encoder Syed Nayyar Waris
2020-03-18  2:18 ` William Breathitt Gray
2020-06-07  5:22   ` Syed Nayyar Waris
2020-06-14 13:46     ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).