fix rga timeout mmu buf free bug
authorzsq <zsq@rock-chips.com>
Thu, 19 Mar 2015 08:22:23 +0000 (16:22 +0800)
committerzsq <zsq@rock-chips.com>
Thu, 19 Mar 2015 08:22:23 +0000 (16:22 +0800)
drivers/video/rockchip/rga/rga_drv.c

index d081f0ca8c8ee35110c1ec7298cc95052ddaa8df..e8826bc1a0bc5b31a870e6f535ff10237370574d 100755 (executable)
@@ -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);