Skip to content

Commit

Permalink
staging: comedi: return error on "write" if no command set up
Browse files Browse the repository at this point in the history
The "write" file operation handler, `comedi_write()` returns an error
for pretty much any condition that prevents a "write" going ahead.  One
of the conditions that prevents a "write" going ahead is that no
asynchronous command has been set up, but that currently results in a
return value of 0 (unless COMEDI instructions are being processed or an
asynchronous command has been set up by a different file object).
Change it to return `-EINVAL` in this case.

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 Dec 21, 2015
1 parent 35a7475 commit 40d0e80
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/staging/comedi/comedi_fops.c
Original file line number Diff line number Diff line change
Expand Up @@ -2331,9 +2331,12 @@ static ssize_t comedi_write(struct file *file, const char __user *buf,
}

async = s->async;

if (!s->busy || !nbytes)
if (!nbytes)
goto out;
if (!s->busy) {
retval = -EINVAL;
goto out;
}
if (s->busy != file) {
retval = -EACCES;
goto out;
Expand Down Expand Up @@ -2373,8 +2376,10 @@ static ssize_t comedi_write(struct file *file, const char __user *buf,
retval = -ERESTARTSYS;
break;
}
if (!s->busy)
if (!s->busy) {
retval = -EINVAL;
break;
}
if (s->busy != file) {
retval = -EACCES;
break;
Expand Down

0 comments on commit 40d0e80

Please sign in to comment.