From b8ec10757484f2514a23121ca8ebde4bf0b081d9 Mon Sep 17 00:00:00 2001 From: annamraj Date: Wed, 19 Jul 2017 16:52:55 +0530 Subject: [PATCH] msm: camera: Make use of mutex lock to avoid race condition Make use of mutex lock to access IOCTL so that two threads can avoid race condition. Change-Id: I00db78a42c86eef8a157b5b3547e4ca0006b0853 Signed-off-by: annamraj --- drivers/media/platform/msm/camera_v2/fd/msm_fd_dev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/msm/camera_v2/fd/msm_fd_dev.c b/drivers/media/platform/msm/camera_v2/fd/msm_fd_dev.c index a04d7ca73fe1..63c3595a3f85 100644 --- a/drivers/media/platform/msm/camera_v2/fd/msm_fd_dev.c +++ b/drivers/media/platform/msm/camera_v2/fd/msm_fd_dev.c @@ -1057,14 +1057,18 @@ static int msm_fd_s_ctrl(struct file *file, void *fh, struct v4l2_control *a) a->value = ctx->format.size->work_size; break; case V4L2_CID_FD_WORK_MEMORY_FD: + mutex_lock(&ctx->fd_device->recovery_lock); if (ctx->work_buf.fd != -1) msm_fd_hw_unmap_buffer(&ctx->work_buf); if (a->value >= 0) { ret = msm_fd_hw_map_buffer(&ctx->mem_pool, a->value, &ctx->work_buf); - if (ret < 0) + if (ret < 0) { + mutex_unlock(&ctx->fd_device->recovery_lock); return ret; + } } + mutex_unlock(&ctx->fd_device->recovery_lock); break; default: return -EINVAL;