From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f171.google.com ([209.85.212.171]:33936 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752031AbbIPOhX (ORCPT ); Wed, 16 Sep 2015 10:37:23 -0400 Received: by wicfx3 with SMTP id fx3so76387762wic.1 for ; Wed, 16 Sep 2015 07:37:22 -0700 (PDT) Subject: Re: [PATCH 3.12 - 3.15] staging: comedi: usbduxsigma: don't clobber ao_timer in command test To: Ian Abbott , stable@vger.kernel.org References: <1442409597-860-1-git-send-email-abbotti@mev.co.uk> From: Jiri Slaby Message-ID: <55F97EA1.6030504@suse.cz> Date: Wed, 16 Sep 2015 16:37:21 +0200 MIME-Version: 1.0 In-Reply-To: <1442409597-860-1-git-send-email-abbotti@mev.co.uk> Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: 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 Both usbduxsigma applied to 3.12. Thanks! -- js suse labs