[PATCH 03/12] staging: comedi: das16: use comedi_legacy_detach()

Dan Carpenter dan.carpenter at oracle.com
Thu Apr 18 08:27:36 UTC 2013


On Wed, Apr 17, 2013 at 11:17:42AM -0700, H Hartley Sweeten wrote:
> Use the new comedi_legacy_detach() helper in the (*detach) to release
> the first I/O region requested by this driver.
> 
> An additional I/O region is requested for some of the boards this driver
> supports. Save the iobase for that region in the private data so that
> the (*detach) knows it needs to be released.
> 
> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
> Cc: Ian Abbott <abbotti at mev.co.uk>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> ---
>  drivers/staging/comedi/drivers/das16.c | 22 ++++++++--------------
>  1 file changed, 8 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/staging/comedi/drivers/das16.c b/drivers/staging/comedi/drivers/das16.c
> index c2b5015..b2826710 100644
> --- a/drivers/staging/comedi/drivers/das16.c
> +++ b/drivers/staging/comedi/drivers/das16.c
> @@ -393,6 +393,8 @@ struct das16_private_struct {
>  	struct timer_list timer;	/*  for timed interrupt */
>  	volatile short timer_running;
>  	volatile short timer_mode;	/*  true if using timer mode */
> +
> +	unsigned long extra_iobase;
>  };
>  
>  static int das16_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s,
> @@ -1122,11 +1124,9 @@ static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
>  		/* Request an additional region for the 8255 */
>  		ret = __comedi_request_region(dev, dev->iobase + 0x400,
>  					      board->size & 0x3ff);
> -		if (ret) {
> -			release_region(dev->iobase, 0x10);
> -			dev->iobase = 0;
> -			return -EIO;
> -		}
> +		if (ret)
> +			return ret;
> +		devpriv->extra_iobase = dev->iobase + 0x400;
>  	}
>  
>  	/*  probe id bits to make sure they are consistent */

I understand that we clean up later but can the board work if the
second request region fails?  That's why we don't return an error
here any more?

regards,
dan carpenter




More information about the devel mailing list