diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c index 36b1a2fd3409ff446015661cf1de3ecbede89a23..0d06fc1022a99ab6b20b6a977c79ea8fc9baeb1a 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c @@ -4500,7 +4500,7 @@ _CacheOperation( ) { PLINUX_MDL mdl = (PLINUX_MDL)Handle; - PLINUX_MDL_MAP mdlMap; + PLINUX_MDL_MAP mdlMap = gcvNULL; gckALLOCATOR allocator; if (!mdl || !mdl->allocator) @@ -4513,11 +4513,14 @@ _CacheOperation( if (allocator->ops->Cache) { - mutex_lock(&mdl->mapsMutex); + if (ProcessID) + { + mutex_lock(&mdl->mapsMutex); - mdlMap = FindMdlMap(mdl, ProcessID); + mdlMap = FindMdlMap(mdl, ProcessID); - mutex_unlock(&mdl->mapsMutex); + mutex_unlock(&mdl->mapsMutex); + } if (ProcessID && mdlMap == gcvNULL) { @@ -4534,8 +4537,6 @@ _CacheOperation( } } - _MemoryBarrier(); - return gcvSTATUS_OK; }