diff options
| author | annamraj <annamraj@codeaurora.org> | 2017-11-22 12:21:01 +0530 |
|---|---|---|
| committer | annamraj <annamraj@codeaurora.org> | 2017-11-22 13:12:23 +0530 |
| commit | dd90a001af644069739ddcc069f5103ef025be15 (patch) | |
| tree | ccbe1de1b1703f7c1579097ec596d0989962343f | |
| parent | f697ab3e511d5aa651e0ce53410117e3f13d6213 (diff) | |
msm: jpegdma: Fix for ASAN issues in jpegdma module
Adding Lock mechanism to avoid concurrency issues between reqbufs
and streamoff calls.
Change-Id: I955b30a7d05554366df3a2e6c44fc21c5367b2c2
Signed-off-by: annamraj <annamraj@codeaurora.org>
| -rw-r--r-- | drivers/media/platform/msm/camera_v2/jpeg_dma/msm_jpeg_dma_dev.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/platform/msm/camera_v2/jpeg_dma/msm_jpeg_dma_dev.c b/drivers/media/platform/msm/camera_v2/jpeg_dma/msm_jpeg_dma_dev.c index 7f6e78710117..ba64433a3fab 100644 --- a/drivers/media/platform/msm/camera_v2/jpeg_dma/msm_jpeg_dma_dev.c +++ b/drivers/media/platform/msm/camera_v2/jpeg_dma/msm_jpeg_dma_dev.c @@ -816,9 +816,12 @@ static int msm_jpegdma_s_fmt_vid_out(struct file *file, static int msm_jpegdma_reqbufs(struct file *file, void *fh, struct v4l2_requestbuffers *req) { + int ret = 0; struct jpegdma_ctx *ctx = msm_jpegdma_ctx_from_fh(fh); - - return v4l2_m2m_reqbufs(file, ctx->m2m_ctx, req); + mutex_lock(&ctx->lock); + ret = v4l2_m2m_reqbufs(file, ctx->m2m_ctx, req); + mutex_unlock(&ctx->lock); + return ret; } /* @@ -925,11 +928,11 @@ static int msm_jpegdma_streamoff(struct file *file, { struct jpegdma_ctx *ctx = msm_jpegdma_ctx_from_fh(fh); int ret; - + mutex_lock(&ctx->lock); ret = v4l2_m2m_streamoff(file, ctx->m2m_ctx, buf_type); if (ret < 0) dev_err(ctx->jdma_device->dev, "Stream off fails\n"); - + mutex_unlock(&ctx->lock); return ret; } |
