Skip to content

Commit

Permalink
staging: comedi: simplify returned errors for comedi_read()
Browse files Browse the repository at this point in the history
In order to perform a "read" file operation, an asynchronous COMEDI
command in the "read" direction needs to have been set up by the current
file object on the COMEDI "read" subdevice associated with the file
object.  If there is a "read" subdevice, but a command has not been set
up by the file object (or is has been set-up in the wrong direction),
`comedi_read()` currently returns one of two error values `-EINVAL` or
`-EACCES`.  `-EACCES` is returned if the command was set up by a
different subdevice, or somewhat randomly, if a COMEDI "instruction" is
currently being processed.  `-EINVAL` is returned in other cases.
Simplify it by returning `-EINVAL` for all these cases.

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>
  • Loading branch information
Ian Abbott authored and Greg Kroah-Hartman committed Oct 13, 2015
1 parent a8ed75c commit 3958284
Showing 1 changed file with 3 additions and 18 deletions.
21 changes: 3 additions & 18 deletions drivers/staging/comedi/comedi_fops.c
Original file line number Diff line number Diff line change
Expand Up @@ -2480,15 +2480,7 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes,
async = s->async;
if (!nbytes)
goto out;
if (!s->busy) {
retval = -EINVAL;
goto out;
}
if (s->busy != file) {
retval = -EACCES;
goto out;
}
if (async->cmd.flags & CMDF_WRITE) {
if (s->busy != file || (async->cmd.flags & CMDF_WRITE)) {
retval = -EINVAL;
goto out;
}
Expand Down Expand Up @@ -2520,15 +2512,8 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes,
retval = -ERESTARTSYS;
break;
}
if (!s->busy) {
retval = -EINVAL;
break;
}
if (s->busy != file) {
retval = -EACCES;
break;
}
if (async->cmd.flags & CMDF_WRITE) {
if (s->busy != file ||
(async->cmd.flags & CMDF_WRITE)) {
retval = -EINVAL;
break;
}
Expand Down

0 comments on commit 3958284

Please sign in to comment.