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, &reg->session->task_running);