From 1d540db76d9028af90d181f509eeb918a7cb6e41 Mon Sep 17 00:00:00 2001
From: Xianzhong <xianzhong.li@nxp.com>
Date: Thu, 28 Mar 2019 13:14:42 +0800
Subject: [PATCH] MGS-4645-2 [#imx-1373] fix command object race condition risk

Vulkan driver has problem to commit command without device mutex,
command object has race condition risk without mutex protection.

move _ProcessUserCommandBufferList into command mutex region.

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
(cherry picked from commit 10120a64fd9342c8effd21eb62bc51f88f1493cb)
---
 drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
index 5d3609f..a5e81c2 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
@@ -1872,14 +1872,6 @@ gckCOMMAND_Commit(
     /* Verify the arguments. */
     gcmkVERIFY_OBJECT(Command, gcvOBJ_COMMAND);
 
-#if !gcdNULL_DRIVER
-    gcmkONERROR(_ProcessUserCommandBufferList(
-        Command,
-        CommandBuffer,
-        &lastCommandBuffer
-        ));
-#endif
-
 #if gcdPROCESS_ADDRESS_SPACE
     gcmkONERROR(gckKERNEL_GetProcessMMU(Command->kernel, &mmu));
 
@@ -1894,6 +1886,14 @@ gckCOMMAND_Commit(
     gcmkONERROR(gckCOMMAND_EnterCommit(Command, gcvFALSE));
     commitEntered = gcvTRUE;
 
+#if !gcdNULL_DRIVER
+    gcmkONERROR(_ProcessUserCommandBufferList(
+        Command,
+        CommandBuffer,
+        &lastCommandBuffer
+        ));
+#endif
+
     /* Acquire the context switching mutex. */
     gcmkONERROR(gckOS_AcquireMutex(
         Command->os, Command->mutexContext, gcvINFINITE
-- 
1.9.1