From 1343ca9e437d8a48b8b5b671f1c21e656587a946 Mon Sep 17 00:00:00 2001 From: Jacob Chen Date: Fri, 31 Mar 2017 10:38:44 +0800 Subject: [PATCH] drm/rockchip: rga: fix smatch check Change-Id: I884ca0d65f1092720262ee96c85803071cbc6284 Signed-off-by: Jacob Chen --- drivers/gpu/drm/rockchip/rockchip_drm_rga.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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) {