On 09/16/2015, 03:19 PM, Ian Abbott wrote: > commit c04a1f17803e0d3eeada586ca34a6b436959bc20 upstream > > `devpriv->ao_timer` is used while an asynchronous command is running on > the AO subdevice. It also gets modified by the subdevice's `cmdtest` > handler for checking new asynchronous commands, > `usbduxsigma_ao_cmdtest()`, which is not correct as it's allowed to > check new commands while an old command is still running. Fix it by > moving the code which sets up `devpriv->ao_timer` into the subdevice's > `cmd` handler, `usbduxsigma_ao_cmd()`. > > ** This backported patch also moves the code that sets up > `devpriv->ao_sample_count` and `devpriv->ao_continuous` from > `usbduxsigma_ao_cmdtest()` to `usbduxsigma_ao_cmd()` for the same reason > as above. (This was not needed in the upstream commit.) ** > > Note that the removed code in `usbduxsigma_ao_cmdtest()` checked that > `devpriv->ao_timer` did not end up less that 1, but that could not > happen due because `cmd->scan_begin_arg` or `cmd->convert_arg` had > already been range-checked. > > Also note that we tested the `high_speed` variable in the old code, but > that is currently always 0 and means that we always use "scan" timing > (`cmd->scan_begin_src == TRIG_TIMER` and `cmd->convert_src == TRIG_NOW`) > and never "convert" (individual sample) timing (`cmd->scan_begin_src == > TRIG_FOLLOW` and `cmd->convert_src == TRIG_TIMER`). The moved code > tests `cmd->convert_src` instead to decide whether "scan" or "convert" > timing is being used, although currently only "scan" timing is > supported. > > Fixes: fb1ef622e7a3 ("staging: comedi: usbduxsigma: tidy up analog output command support") > Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx> Both usbduxsigma applied to 3.12. Thanks! -- js suse labs -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html