Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751755AbdIAJaA (ORCPT ); Fri, 1 Sep 2017 05:30:00 -0400 Received: from smtp89.iad3a.emailsrvr.com ([173.203.187.89]:54269 "EHLO smtp89.iad3a.emailsrvr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751563AbdIAJ36 (ORCPT ); Fri, 1 Sep 2017 05:29:58 -0400 X-Auth-ID: siepeng@mev.co.uk X-Sender-Id: siepeng@mev.co.uk Subject: Re: [PATCH 26/31] staging/comedi/das16: Make timer initialization unconditional To: Kees Cook , Thomas Gleixner Cc: H Hartley Sweeten , Greg Kroah-Hartman , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org References: <1504222183-61202-1-git-send-email-keescook@chromium.org> <1504222183-61202-27-git-send-email-keescook@chromium.org> From: Ian Abbott Message-ID: <5d865f87-4aa5-6a72-ce8a-c0232b362adc@mev.co.uk> Date: Fri, 1 Sep 2017 10:29:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <1504222183-61202-27-git-send-email-keescook@chromium.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2019 Lines: 56 On 01/09/17 00:29, Kees Cook wrote: > With timer initialization made unconditional, there is no reason to > make del_timer_sync() calls conditionally, there by removing the test > of the .data field. > > Cc: Ian Abbott > Cc: H Hartley Sweeten > Cc: Greg Kroah-Hartman > Cc: devel@driverdev.osuosl.org > Signed-off-by: Kees Cook > --- > drivers/staging/comedi/drivers/das16.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/comedi/drivers/das16.c b/drivers/staging/comedi/drivers/das16.c > index 5d157951f63f..4514179b2007 100644 > --- a/drivers/staging/comedi/drivers/das16.c > +++ b/drivers/staging/comedi/drivers/das16.c > @@ -941,10 +941,8 @@ static void das16_alloc_dma(struct comedi_device *dev, unsigned int dma_chan) > /* DMA uses two buffers */ > devpriv->dma = comedi_isadma_alloc(dev, 2, dma_chan, dma_chan, > DAS16_DMA_SIZE, COMEDI_ISADMA_READ); > - if (devpriv->dma) { > - setup_timer(&devpriv->timer, das16_timer_interrupt, > - (unsigned long)dev); > - } > + setup_timer(&devpriv->timer, das16_timer_interrupt, > + (unsigned long)dev); > } das16_alloc_dma() returns before the call to comedi_isadma_alloc() if the dma_chan parameter is not one of the values 1 or 3, so setup_timer() will not be called in that case. > > static void das16_free_dma(struct comedi_device *dev) > @@ -952,8 +950,7 @@ static void das16_free_dma(struct comedi_device *dev) > struct das16_private_struct *devpriv = dev->private; > > if (devpriv) { > - if (devpriv->timer.data) > - del_timer_sync(&devpriv->timer); > + del_timer_sync(&devpriv->timer); If setup_timer() has not been called (see remark above), this change will break. > comedi_isadma_free(devpriv->dma); > } > } > -- -=( Ian Abbott @ MEV Ltd. E-mail: )=- -=( Web: http://www.mev.co.uk/ )=-