Re: [PATCH] media: i2c: ov5648: Fix lockdep error

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

 



Hi,

On 11/26/21 11:08, Paul Kocialkowski wrote:
> Hi Hans,
> 
> On Thu 25 Nov 21, 21:31, Hans de Goede wrote:
>> ov5648_state_init() calls ov5648_state_mipi_configure() which uses
>> __v4l2_ctrl_s_ctrl[_int64](). This means that sensor->mutex (which
>> is also sensor->ctrls.handler.lock) must be locked before calling
>> ov5648_state_init().
>>
>> ov5648_state_mipi_configure() is also used in other places where
>> the lock is already held so it cannot be changed itself.
>>
>> Note this is based on an identical (tested) fix for the ov8865 driver,
>> this has only been compile-tested.
> 
> Good catch, thanks!
> 
> Though I think it would look slightly better to have the lock in the
> ov5648_state_init function itself rather than in the probe.

Ack, that makes sense. I will send a v2 with this change.

Regards,

Hans



>> Cc: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx>
>> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
>> ---
>>  drivers/media/i2c/ov5648.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/media/i2c/ov5648.c b/drivers/media/i2c/ov5648.c
>> index 947d437ed0ef..9f24bdccf50f 100644
>> --- a/drivers/media/i2c/ov5648.c
>> +++ b/drivers/media/i2c/ov5648.c
>> @@ -2546,7 +2546,9 @@ static int ov5648_probe(struct i2c_client *client)
>>  	if (ret)
>>  		goto error_mutex;
>>  
>> +	mutex_lock(&sensor->mutex);
>>  	ret = ov5648_state_init(sensor);
>> +	mutex_unlock(&sensor->mutex);
>>  	if (ret)
>>  		goto error_ctrls;
>>  
>> -- 
>> 2.33.1
>>
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux