Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: comedi: fix comedi_nsamples_left.

A rounding error was causing comedi_nsamples_left to
return the wrong value when nsamples was not a multiple
of the scan length.

Cc: <stable@vger.kernel.org> # v4.4+
Signed-off-by: Frank Mori Hess <fmh6jj@gmail.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Frank Mori Hess and committed by
Greg Kroah-Hartman
a42ae590 cb57469c

+1 -2
+1 -2
drivers/staging/comedi/drivers.c
··· 475 475 struct comedi_cmd *cmd = &async->cmd; 476 476 477 477 if (cmd->stop_src == TRIG_COUNT) { 478 - unsigned int nscans = nsamples / cmd->scan_end_arg; 479 - unsigned int scans_left = __comedi_nscans_left(s, nscans); 478 + unsigned int scans_left = __comedi_nscans_left(s, cmd->stop_arg); 480 479 unsigned int scan_pos = 481 480 comedi_bytes_to_samples(s, async->scan_progress); 482 481 unsigned long long samples_left = 0;