diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-01-09 20:30:22 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-18 00:53:59 (GMT) |
commit | 43f9137df461f6365f76b46f404fd6775eab7d51 (patch) | |
tree | 15c2b7194d5d36f8d189bd76ef7e9de0315468e3 /drivers/staging/comedi | |
parent | d21af4cbfb7fccbccedc1d9e143a14aee6b1c9ad (diff) | |
download | linux-fsl-qoriq-43f9137df461f6365f76b46f404fd6775eab7d51.tar.xz |
staging: comedi: comedi_buf: cleanup comedi_buf_read_n_available()
For aesthetic reasons, cleanup this function a bit.
Change the (async == NULL) test to simply (!async).
Reword the comment about the need for the smp_rmb()..
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r-- | drivers/staging/comedi/comedi_buf.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index fd2a92e..06dd544 100644 --- a/drivers/staging/comedi/comedi_buf.c +++ b/drivers/staging/comedi/comedi_buf.c @@ -273,14 +273,17 @@ unsigned int comedi_buf_read_n_available(struct comedi_async *async) { unsigned num_bytes; - if (async == NULL) + if (!async) return 0; + num_bytes = async->munge_count - async->buf_read_count; - /* barrier insures the read of munge_count in this - query occurs before any following reads of the buffer which - might be based on the return value from this query. + + /* + * ensure the async buffer 'counts' are read before we + * attempt to read data from the buffer */ smp_rmb(); + return num_bytes; } EXPORT_SYMBOL(comedi_buf_read_n_available); |