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__);