From 5c8e73ea9ba31c0fcd1ba95340873210b8b2cb8c Mon Sep 17 00:00:00 2001 From: zsq Date: Thu, 19 Mar 2015 16:22:23 +0800 Subject: [PATCH] fix rga timeout mmu buf free bug --- drivers/video/rockchip/rga/rga_drv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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); -- 2.34.1