[PATCH 6/6] staging: comedi: don't use mutex when polling file

Hartley Sweeten HartleyS at visionengravers.com
Fri Oct 9 17:24:46 UTC 2015


On Friday, October 09, 2015 4:27 AM, Ian Abbott wrote:
> The main mutex in a comedi device can get held for quite a while when
> processing comedi instructions, so for performance reasons, the "read"
> and "write" file operations do not use it; they use use the
> `attach_lock` rwsemaphore to protect against the comedi device becoming
> detached at an inopportune moment.  Do the same for the "poll" file
> operation.
>
> Signed-off-by: Ian Abbott <abbotti at mev.co.uk>
> ---
>  drivers/staging/comedi/comedi_fops.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
> index 07bb197..88e9334 100644
> --- a/drivers/staging/comedi/comedi_fops.c
> +++ b/drivers/staging/comedi/comedi_fops.c
> @@ -2264,7 +2264,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait)
>  	struct comedi_device *dev = cfp->dev;
>  	struct comedi_subdevice *s, *s_read;
>  
> -	mutex_lock(&dev->mutex);
> +	down_read(&dev->attach_lock);
>  
>  	if (!dev->attached) {
>  		dev_dbg(dev->class_dev, "no driver attached\n");
> @@ -2294,7 +2294,7 @@ static unsigned int comedi_poll(struct file *file, poll_table *wait)
>  	}
>  
>  done:
> -	mutex_unlock(&dev->mutex);
> +	up_read(&dev->attach_lock);
>  	return mask;
>  }

Ian,

No issues with this patch, just a comment:

checkpatch.pl reports some issue about the spinlock_t and mutex definitions
in comedidev.h:

CHECK: spinlock_t definition without comment
#177: FILE: drivers/staging/comedi/comedidev.h:177:
+       spinlock_t spin_lock;

CHECK: spinlock_t definition without comment
#540: FILE: drivers/staging/comedi/comedidev.h:540:
+       spinlock_t spinlock;

CHECK: struct mutex definition without comment
#541: FILE: drivers/staging/comedi/comedidev.h:541:
+       struct mutex mutex;

I know these are documented in the docbook comment for the structs but would
you mind adding some comments to the definitions to quiet checkpatch.pl?

Thanks,
Hartley




More information about the devel mailing list