From 1d540db76d9028af90d181f509eeb918a7cb6e41 Mon Sep 17 00:00:00 2001 From: Xianzhong 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 (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