lkml.org 
[lkml]   [2020]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 170/190] media: ov5640: fix use of destroyed mutex
    Date
    From: Tomi Valkeinen <tomi.valkeinen@ti.com>

    commit bfcba38d95a0aed146a958a84a2177af1459eddc upstream.

    v4l2_ctrl_handler_free() uses hdl->lock, which in ov5640 driver is set
    to sensor's own sensor->lock. In ov5640_remove(), the driver destroys the
    sensor->lock first, and then calls v4l2_ctrl_handler_free(), resulting
    in the use of the destroyed mutex.

    Fix this by calling moving the mutex_destroy() to the end of the cleanup
    sequence, as there's no need to destroy the mutex as early as possible.

    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: stable@vger.kernel.org # v4.14+
    Reviewed-by: Benoit Parrot <bparrot@ti.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/media/i2c/ov5640.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/media/i2c/ov5640.c
    +++ b/drivers/media/i2c/ov5640.c
    @@ -2298,8 +2298,8 @@ static int ov5640_probe(struct i2c_clien
    free_ctrls:
    v4l2_ctrl_handler_free(&sensor->ctrls.handler);
    entity_cleanup:
    - mutex_destroy(&sensor->lock);
    media_entity_cleanup(&sensor->sd.entity);
    + mutex_destroy(&sensor->lock);
    return ret;
    }

    @@ -2309,9 +2309,9 @@ static int ov5640_remove(struct i2c_clie
    struct ov5640_dev *sensor = to_ov5640_dev(sd);

    v4l2_async_unregister_subdev(&sensor->sd);
    - mutex_destroy(&sensor->lock);
    media_entity_cleanup(&sensor->sd.entity);
    v4l2_ctrl_handler_free(&sensor->ctrls.handler);
    + mutex_destroy(&sensor->lock);

    return 0;
    }

    \
     
     \ /
      Last update: 2020-06-19 18:33    [W:8.742 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site