From: zsq <zsq@rock-chips.com> Date: Thu, 19 Mar 2015 08:22:23 +0000 (+0800) Subject: fix rga timeout mmu buf free bug X-Git-Tag: firefly_0821_release~4251 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5c8e73ea9ba31c0fcd1ba95340873210b8b2cb8c;p=firefly-linux-kernel-4.4.55.git fix rga timeout mmu buf free bug --- diff --git a/drivers/video/rockchip/rga/rga_drv.c b/drivers/video/rockchip/rga/rga_drv.c index d081f0ca8c8e..e8826bc1a0bc 100755 --- a/drivers/video/rockchip/rga/rga_drv.c +++ b/drivers/video/rockchip/rga/rga_drv.c @@ -731,10 +731,13 @@ static void rga_del_running_list_timeout(void) while(!list_empty(&rga_service.running)) { reg = list_entry(rga_service.running.next, struct rga_reg, status_link); - - if(reg->MMU_base != NULL) + + if(reg->MMU_len != 0) { - kfree(reg->MMU_base); + if (rga_mmu_buf.back + reg->MMU_len > 2*rga_mmu_buf.size) + rga_mmu_buf.back = reg->MMU_len + rga_mmu_buf.size; + else + rga_mmu_buf.back += reg->MMU_len; } atomic_sub(1, ®->session->task_running);