lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0187/1039] media: i2c: ov8865: Fix lockdep error
    Date
    From: Hans de Goede <hdegoede@redhat.com>

    [ Upstream commit 6e1c9bc9ae96e57bcd8807174f2c0f44f9ef7938 ]

    ov8865_state_init() calls ov8865_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
    ov8865_state_init().

    Note ov8865_state_mipi_configure() is also used in other places where
    the lock is already held so it cannot be changed itself.

    This fixes the following lockdep kernel WARN:

    [ 13.233421] WARNING: CPU: 0 PID: 8 at drivers/media/v4l2-core/v4l2-ctrls-api.c:833 __v4l2_ctrl_s_ctrl+0x4d/0x60 [videodev]
    ...
    [ 13.234063] Call Trace:
    [ 13.234074] ov8865_state_configure+0x98b/0xc00 [ov8865]
    [ 13.234095] ov8865_probe+0x4b1/0x54c [ov8865]
    [ 13.234117] i2c_device_probe+0x13c/0x2d0

    Fixes: 11c0d8fdccc5 ("media: i2c: Add support for the OV8865 image sensor")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/media/i2c/ov8865.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/drivers/media/i2c/ov8865.c
    +++ b/drivers/media/i2c/ov8865.c
    @@ -2893,7 +2893,9 @@ static int ov8865_probe(struct i2c_clien
    if (ret)
    goto error_mutex;

    + mutex_lock(&sensor->mutex);
    ret = ov8865_state_init(sensor);
    + mutex_unlock(&sensor->mutex);
    if (ret)
    goto error_ctrls;


    \
     
     \ /
      Last update: 2022-01-25 00:54    [W:3.386 / U:0.564 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site