diff --git a/drivers/media/platform/msm/vidc/msm_vidc.c b/drivers/media/platform/msm/vidc/msm_vidc.c index 6a4620a3e16fc361582879b71a482f55bef69419..ff1b2177f14740a69fe910d08c6d71b1683a669b 100644 --- a/drivers/media/platform/msm/vidc/msm_vidc.c +++ b/drivers/media/platform/msm/vidc/msm_vidc.c @@ -259,11 +259,11 @@ struct buffer_info *get_registered_buf(struct msm_vidc_inst *inst, list_for_each_entry(temp, &inst->registeredbufs.list, list) { for (i = 0; (i < temp->num_planes) && (i < VIDEO_MAX_PLANES); i++) { - bool ion_hndl_matches = + bool ion_hndl_matches = temp->handle[i] ? msm_smem_compare_buffers(inst->mem_client, fd, - temp->handle[i]->smem_priv); + temp->handle[i]->smem_priv) : false; if (temp && - ((fd == temp->fd[i]) || + (ion_hndl_matches || (device_addr == temp->device_addr[i])) && (CONTAINS(temp->buff_off[i], temp->size[i], buff_off) @@ -271,7 +271,7 @@ struct buffer_info *get_registered_buf(struct msm_vidc_inst *inst, size, temp->buff_off[i]) || OVERLAPS(buff_off, size, temp->buff_off[i], - temp->size[i])) && ion_hndl_matches) { + temp->size[i]))) { dprintk(VIDC_DBG, "This memory region is already mapped\n"); ret = temp; @@ -1000,8 +1000,8 @@ int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b) if (!inst->map_output_buffer) continue; if (EXTRADATA_IDX(b->length) && - (i == EXTRADATA_IDX(b->length)) && - !b->m.planes[i].m.userptr) { + i == EXTRADATA_IDX(b->length)) + { continue; } buffer_info = device_to_uvaddr(&inst->registeredbufs,