On Wednesday, November 05, 2014 4:25 AM, Ian Abbott wrote: > On 04/11/14 16:50, H Hartley Sweeten wrote: >> Introduce a new member to comedi_async to count the number of scans completed. >> This member is cleared by comedi_buf_reset() along with the other comedi_async >> members. It is incremented in comedi_inc_scan_progress() when the end of scan >> is detected. >> >> This member will be used to clean up the scan counting in the comedi drivers. >> >> Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> >> Cc: Ian Abbott <abbotti@xxxxxxxxx> >> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >> --- >> drivers/staging/comedi/comedi_buf.c | 1 + >> drivers/staging/comedi/comedidev.h | 2 ++ >> drivers/staging/comedi/drivers.c | 1 + >> 3 files changed, 4 insertions(+) [snip] >> diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c >> index 9a8c5fc..4fc992b 100644 >> --- a/drivers/staging/comedi/drivers.c >> +++ b/drivers/staging/comedi/drivers.c >> @@ -352,6 +352,7 @@ void comedi_inc_scan_progress(struct comedi_subdevice *s, >> >> async->scan_progress += num_bytes; >> if (async->scan_progress >= scan_length) { >> + async->scans_done += async->scan_progress / scan_length; >> async->scan_progress %= scan_length; >> async->events |= COMEDI_CB_EOS; >> } >> > > The patch is fine, but as a follow-up patch, async->scans_done could be > clamped to UINT_MAX (or possibly async->cmd.stop_arg, but UINT_MAX is > easier), e.g.: > > unsigned int scans = async->scan_progress / scan_length; > > if (async->scans_done < UINT_MAX - scans) > async->scans_done += scans; > else > async->scans_done = UINT_MAX; > async->scan_progress -= scans * scan_length; > async->events |= COMEDI_CB_EOS; Ian, As you pointed out, I need to fix patch 12 so I will also update this one for the v2 series. Thanks, Hartley _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel