From a6e8541864a6b490fa69c3816a9813cd8aa9397f Mon Sep 17 00:00:00 2001 From: Govindaraj Rajagopal Date: Wed, 31 Jul 2019 20:17:08 +0530 Subject: [PATCH] msm: vidc: add check to ensure buffer size is 4K aligned Input and output buffer size must be 4K aligned for both encoder and decoder session. So reject the session during msm_vidc_qbuf, if alloc_len is not 4K aligned. Change-Id: If555f26f1658ce50e12a8533cb9d59134da0aa81 Signed-off-by: Govindaraj Rajagopal --- msm/vidc/msm_vidc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/msm/vidc/msm_vidc.c b/msm/vidc/msm_vidc.c index 343d6c83db4c..77eef75ef2ae 100644 --- a/msm/vidc/msm_vidc.c +++ b/msm/vidc/msm_vidc.c @@ -340,6 +340,12 @@ int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b) return -EINVAL; } + if (!IS_ALIGNED(b->m.planes[0].length, SZ_4K)) { + dprintk(VIDC_ERR, "qbuf: %x: buffer size not 4K aligned - %u\n", + hash32_ptr(inst->session), b->m.planes[0].length); + return -EINVAL; + } + if (inst->in_flush && is_decode_session(inst) && b->type == OUTPUT_MPLANE) { dprintk(VIDC_ERR, "%s: in flush, discarding qbuf\n", __func__);