drm/rockchip: rga: fix smatch check
authorJacob Chen <jacob2.chen@rock-chips.com>
Fri, 31 Mar 2017 02:38:44 +0000 (10:38 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 19 Apr 2017 00:42:36 +0000 (08:42 +0800)
Change-Id: I884ca0d65f1092720262ee96c85803071cbc6284
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_rga.c

index e03c6a0d40907df204f65e688aa0e116e84705e0..42aca4289a5d9af2f0ceb6bfc069386fc332b3ff 100644 (file)
@@ -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) {