aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/comedi_buf.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-01-09 13:30:22 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-17 16:53:59 -0800
commit43f9137df461f6365f76b46f404fd6775eab7d51 (patch)
tree15c2b7194d5d36f8d189bd76ef7e9de0315468e3 /drivers/staging/comedi/comedi_buf.c
parentd21af4cbfb7fccbccedc1d9e143a14aee6b1c9ad (diff)
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/comedi_buf.c')
-rw-r--r--drivers/staging/comedi/comedi_buf.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c
index fd2a92e29fb..06dd544ec2c 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);