@@ -3621,6 +3621,12 @@ cl_int CL_API_CALL clSetKernelArgSVMPointer(cl_kernel kernel,
36213621 return retVal;
36223622 }
36233623
3624+ auto svmManager = pKernel->getContext ().getSVMAllocsManager ();
3625+ if (!svmManager) {
3626+ retVal = CL_INVALID_ARG_VALUE;
3627+ return retVal;
3628+ }
3629+
36243630 cl_int kernelArgAddressQualifier = pKernel->getKernelArgAddressQualifier (argIndex);
36253631 if ((kernelArgAddressQualifier != CL_KERNEL_ARG_ADDRESS_GLOBAL) &&
36263632 (kernelArgAddressQualifier != CL_KERNEL_ARG_ADDRESS_CONSTANT)) {
@@ -3630,7 +3636,7 @@ cl_int CL_API_CALL clSetKernelArgSVMPointer(cl_kernel kernel,
36303636
36313637 GraphicsAllocation *pSvmAlloc = nullptr ;
36323638 if (argValue != nullptr ) {
3633- auto svmData = pKernel-> getContext (). getSVMAllocsManager () ->getSVMAlloc (argValue);
3639+ auto svmData = svmManager ->getSVMAlloc (argValue);
36343640 if (svmData == nullptr ) {
36353641 retVal = CL_INVALID_ARG_VALUE;
36363642 return retVal;
@@ -3668,6 +3674,10 @@ cl_int CL_API_CALL clSetKernelExecInfo(cl_kernel kernel,
36683674 size_t numPointers = paramValueSize / sizeof (void *);
36693675 size_t *pSvmPtrList = (size_t *)paramValue;
36703676
3677+ if (pKernel->getContext ().getSVMAllocsManager () == nullptr ) {
3678+ return CL_INVALID_VALUE;
3679+ }
3680+
36713681 pKernel->clearKernelExecInfo ();
36723682 for (uint32_t i = 0 ; i < numPointers; i++) {
36733683 auto svmData = pKernel->getContext ().getSVMAllocsManager ()->getSVMAlloc ((const void *)pSvmPtrList[i]);
@@ -4145,9 +4155,14 @@ cl_int CL_API_CALL clEnqueueSVMMigrateMem(cl_command_queue commandQueue,
41454155 retVal = CL_INVALID_VALUE;
41464156 return retVal;
41474157 }
4158+ auto pSvmAllocMgr = pCommandQueue->getContext ().getSVMAllocsManager ();
4159+
4160+ if (pSvmAllocMgr == nullptr ) {
4161+ retVal = CL_INVALID_VALUE;
4162+ return retVal;
4163+ }
41484164
41494165 for (uint32_t i = 0 ; i < numSvmPointers; i++) {
4150- SVMAllocsManager *pSvmAllocMgr = pCommandQueue->getContext ().getSVMAllocsManager ();
41514166 auto svmData = pSvmAllocMgr->getSVMAlloc (svmPointers[i]);
41524167 if (svmData == nullptr ) {
41534168 retVal = CL_INVALID_VALUE;
0 commit comments