Re: [PATCH 1/8] staging:iio:adis16200: Do not return a error in remove function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/22/2012 09:56 AM, Lars-Peter Clausen wrote:
> In the Linux device driver model the remove callback is not allowed to fail and
> the device will be removed regardless of the return value of the remove
> callback. So if we abort in the remove function and do not free all resources we
> will create a resource leak. Also all kinds of undefined behaviour are expected
> to happen since the IIO device is still there while its parent is already gone.
> 
> The error which the driver tries to handle in the remove function is
> non-critical, so we can just ignore it and continue to free all resources and
> remove the IIO device.
> 
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Added all 8 to togreg branch of iio.git.

Eariler in the cycle I'd have pushed these as fixes, but as they've been
there a long time, lets just leave it to the next cycle.

Good catch on these btw.

> ---
>  drivers/staging/iio/gyro/adis16260_core.c |   10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
> index 1d58d0e..9571c03 100644
> --- a/drivers/staging/iio/gyro/adis16260_core.c
> +++ b/drivers/staging/iio/gyro/adis16260_core.c
> @@ -702,22 +702,16 @@ error_ret:
>  
>  static int __devexit adis16260_remove(struct spi_device *spi)
>  {
> -	int ret;
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  
>  	iio_device_unregister(indio_dev);
> -
> -	ret = adis16260_stop_device(indio_dev);
> -	if (ret)
> -		goto err_ret;
> -
> +	adis16260_stop_device(indio_dev);
>  	adis16260_remove_trigger(indio_dev);
>  	iio_buffer_unregister(indio_dev);
>  	adis16260_unconfigure_ring(indio_dev);
>  	iio_device_free(indio_dev);
>  
> -err_ret:
> -	return ret;
> +	return 0;
>  }
>  
>  /*
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux