From: Jacob Chen Date: Fri, 31 Mar 2017 02:38:44 +0000 (+0800) Subject: drm/rockchip: rga: fix smatch check X-Git-Tag: release-20171130_firefly~4^2~787 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=1343ca9e437d8a48b8b5b671f1c21e656587a946;p=firefly-linux-kernel-4.4.55.git drm/rockchip: rga: fix smatch check Change-Id: I884ca0d65f1092720262ee96c85803071cbc6284 Signed-off-by: Jacob Chen --- diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_rga.c b/drivers/gpu/drm/rockchip/rockchip_drm_rga.c index e03c6a0d4090..42aca4289a5d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_rga.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_rga.c @@ -158,10 +158,15 @@ static int rga_alloc_dma_buf_for_cmdlist(struct rga_runqueue_node *runqueue) dest = cmdlist_pool_virt + RGA_CMDLIST_SIZE * 4 * count++; for (i = 0; i < cmdlist->last / 2; i++) { + int val_index = 2 * i + 1; + reg = (node->cmdlist.data[2 * i] - RGA_MODE_BASE_REG); - if (reg > RGA_MODE_BASE_REG) + + if (reg > RGA_MODE_BASE_REG || val_index >= + (RGA_CMDLIST_SIZE + RGA_CMDBUF_SIZE) * 2) continue; - dest[reg >> 2] = cmdlist->data[2 * i + 1]; + + dest[reg >> 2] = cmdlist->data[val_index]; } if (cmdlist->src_mmu_pages) {