Re: [PATCH] iio: adc: mcp3422: fix locking on error path

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

 



On Tue, 1 Sep 2020 11:32:18 +0200
Angelo Compagnucci <angelo.compagnucci@xxxxxxxxx> wrote:

> Reading from the chip should be unlocked on error path else the lock
> could never being released.

We should also reference the fix that we are fixing so I've added
an additional fixes tag below and a reported by tag for Julia.

> 
> Fixes: 07914c84ba30 ("iio: adc: Add driver for Microchip MCP3422/3/4 high resolution ADC")
Fixes: 3f1093d83d71 ("iio: adc: mcp3422: fix locking scope")
> Signed-off-by: Angelo Compagnucci <angelo.compagnucci@xxxxxxxxx>
Reported-by: Julia Lawall <julia.lawall@xxxxxxxx>
Acked-by: Jonathan Cameron <jonathan.cameron@xxxxxxxxxx>

Greg, this is the fix for the issue Julia reported.

Sorry for the hassle (and messing this up in the first palce), but
could you pick this one up directly into your staging-linus branch.

If you'd prefer a different resolution to the problem let us know.

Thanks,

Jonathan


> ---
>  drivers/iio/adc/mcp3422.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/mcp3422.c b/drivers/iio/adc/mcp3422.c
> index 219adac2384b..da353dcb1e9d 100644
> --- a/drivers/iio/adc/mcp3422.c
> +++ b/drivers/iio/adc/mcp3422.c
> @@ -143,8 +143,10 @@ static int mcp3422_read_channel(struct mcp3422 *adc,
>  		config &= ~MCP3422_PGA_MASK;
>  		config |= MCP3422_PGA_VALUE(adc->pga[req_channel]);
>  		ret = mcp3422_update_config(adc, config);
> -		if (ret < 0)
> +		if (ret < 0) {
> +			mutex_unlock(&adc->lock);
>  			return ret;
> +		}
>  		msleep(mcp3422_read_times[MCP3422_SAMPLE_RATE(adc->config)]);
>  	}
>  





[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