staging: comedi: allow buffer wraparound in comedi_read()
authorIan Abbott <abbotti@mev.co.uk>
Mon, 12 Oct 2015 16:21:25 +0000 (17:21 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Oct 2015 17:29:48 +0000 (10:29 -0700)
commit42ea907d785d522e5ae661c3774b8a801ac7f00b
tree434f60b628e9ad6c2fe404576c8db1453fd453a2
parent8ea939284d3ebde02d5b46d50406c2b7faae1214
staging: comedi: allow buffer wraparound in comedi_read()

`comedi_read()` copies data from the acquisition data buffer, which is
cyclic, to the user buffer using a single call to `copy_to_user()`.  It
currently avoids having to deal with wraparound of the cyclic buffer by
limiting the amount it copies (and the amount returned to the user).
Change it to deal with the wraparound using two calls to
`copy_to_user()` if necessary.

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>
drivers/staging/comedi/comedi_fops.c