staging: comedi: don't use mutex when polling file

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@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Ian Abbott 2015-10-09 12:26:52 +01:00 committed by Greg Kroah-Hartman
parent 3834234f99
commit d5eb3a7421
1 changed files with 2 additions and 2 deletions

View File

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