summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorE V Ravi <evenka@codeaurora.org>2019-07-05 15:45:49 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2019-07-10 02:32:53 -0700
commita54cd970d87e77a78262efb21e0ce4f72e1d4e26 (patch)
tree74f108ea340411027253449e457ba39bec7d4888
parenta18db927c67e6c992c3a80d54c53906b609acdb4 (diff)
msm: ais: jpegdma: Added missing lock for dqbuf and streamon
Added missing lock to avoid race conditon for dqbuf and streamon. Change-Id: I260dfc964066ad68552dfab0c43584708cfc8b8e Signed-off-by: E V Ravi <evenka@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/ais/jpeg_dma/msm_jpeg_dma_dev.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/media/platform/msm/ais/jpeg_dma/msm_jpeg_dma_dev.c b/drivers/media/platform/msm/ais/jpeg_dma/msm_jpeg_dma_dev.c
index 61200d379a1d..273cec87bb8e 100644
--- a/drivers/media/platform/msm/ais/jpeg_dma/msm_jpeg_dma_dev.c
+++ b/drivers/media/platform/msm/ais/jpeg_dma/msm_jpeg_dma_dev.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -795,8 +795,12 @@ static int msm_jpegdma_dqbuf(struct file *file,
void *fh, struct v4l2_buffer *buf)
{
struct jpegdma_ctx *ctx = msm_jpegdma_ctx_from_fh(fh);
+ int ret;
- return v4l2_m2m_dqbuf(file, ctx->m2m_ctx, buf);
+ mutex_lock(&ctx->lock);
+ ret = v4l2_m2m_dqbuf(file, ctx->m2m_ctx, buf);
+ mutex_unlock(&ctx->lock);
+ return ret;
}
/*
@@ -811,10 +815,12 @@ static int msm_jpegdma_streamon(struct file *file,
struct jpegdma_ctx *ctx = msm_jpegdma_ctx_from_fh(fh);
int ret;
- if (!msm_jpegdma_config_ok(ctx))
+ mutex_lock(&ctx->lock);
+ if (!msm_jpegdma_config_ok(ctx)) {
+ mutex_unlock(&ctx->lock);
return -EINVAL;
+ }
- mutex_lock(&ctx->lock);
ret = v4l2_m2m_streamon(file, ctx->m2m_ctx, buf_type);
if (ret < 0)