@@ -96,7 +96,7 @@ typedef CUipcMemHandle cu_ipc_data_t;
9696
9797static cu_ops_t g_cu_ops ;
9898static UTIL_ONCE_FLAG cu_is_initialized = UTIL_ONCE_FLAG_INIT ;
99- static bool Init_cu_global_state_failed ;
99+ static bool Init_cu_global_state_failed = true ;
100100
101101// forward decl needed for alloc
102102static umf_result_t cu_memory_provider_free (void * provider , void * ptr ,
@@ -146,7 +146,6 @@ static void init_cu_global_state(void) {
146146 utils_open_library (lib_name , UMF_UTIL_OPEN_LIBRARY_NO_LOAD );
147147 if (!lib_handle ) {
148148 LOG_ERR ("Failed to open CUDA shared library" );
149- Init_cu_global_state_failed = true;
150149 return ;
151150 }
152151
@@ -189,10 +188,13 @@ static void init_cu_global_state(void) {
189188 !g_cu_ops .cuCtxSetCurrent || !g_cu_ops .cuIpcGetMemHandle ||
190189 !g_cu_ops .cuIpcOpenMemHandle || !g_cu_ops .cuIpcCloseMemHandle ) {
191190 LOG_FATAL ("Required CUDA symbols not found." );
192- Init_cu_global_state_failed = true;
193191 utils_close_library (lib_handle );
194192 return ;
195193 }
194+
195+ // set "failed" flag to false (it is initialized to true)
196+ Init_cu_global_state_failed = false;
197+
196198 cu_lib_handle = lib_handle ;
197199}
198200
@@ -244,6 +246,10 @@ umf_result_t umfCUDAMemoryProviderParamsCreate(
244246
245247umf_result_t umfCUDAMemoryProviderParamsDestroy (
246248 umf_cuda_memory_provider_params_handle_t hParams ) {
249+ if (!hParams ) {
250+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
251+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
252+ }
247253 umf_ba_global_free (hParams );
248254
249255 return UMF_RESULT_SUCCESS ;
@@ -711,49 +717,77 @@ const umf_memory_provider_ops_t *umfCUDAMemoryProviderOps(void) {
711717
712718umf_result_t umfCUDAMemoryProviderParamsCreate (
713719 umf_cuda_memory_provider_params_handle_t * hParams ) {
714- (void )hParams ;
720+ if (!hParams ) {
721+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
722+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
723+ }
724+
725+ * hParams = NULL ;
715726 LOG_ERR ("CUDA provider is disabled (UMF_BUILD_CUDA_PROVIDER is OFF)!" );
716- return UMF_RESULT_ERROR_NOT_SUPPORTED ;
727+
728+ return UMF_RESULT_ERROR_DEPENDENCY_UNAVAILABLE ;
717729}
718730
719731umf_result_t umfCUDAMemoryProviderParamsDestroy (
720732 umf_cuda_memory_provider_params_handle_t hParams ) {
721- (void )hParams ;
733+ if (!hParams ) {
734+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
735+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
736+ }
737+
722738 LOG_ERR ("CUDA provider is disabled (UMF_BUILD_CUDA_PROVIDER is OFF)!" );
723- return UMF_RESULT_ERROR_NOT_SUPPORTED ;
739+ return UMF_RESULT_ERROR_DEPENDENCY_UNAVAILABLE ;
724740}
725741
726742umf_result_t umfCUDAMemoryProviderParamsSetContext (
727743 umf_cuda_memory_provider_params_handle_t hParams , void * hContext ) {
728- (void )hParams ;
729744 (void )hContext ;
745+
746+ if (!hParams ) {
747+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
748+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
749+ }
750+
730751 LOG_ERR ("CUDA provider is disabled (UMF_BUILD_CUDA_PROVIDER is OFF)!" );
731- return UMF_RESULT_ERROR_NOT_SUPPORTED ;
752+ return UMF_RESULT_ERROR_DEPENDENCY_UNAVAILABLE ;
732753}
733754
734755umf_result_t umfCUDAMemoryProviderParamsSetDevice (
735756 umf_cuda_memory_provider_params_handle_t hParams , int hDevice ) {
736- (void )hParams ;
737757 (void )hDevice ;
758+
759+ if (!hParams ) {
760+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
761+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
762+ }
763+
738764 LOG_ERR ("CUDA provider is disabled (UMF_BUILD_CUDA_PROVIDER is OFF)!" );
739- return UMF_RESULT_ERROR_NOT_SUPPORTED ;
765+ return UMF_RESULT_ERROR_DEPENDENCY_UNAVAILABLE ;
740766}
741767
742768umf_result_t umfCUDAMemoryProviderParamsSetMemoryType (
743769 umf_cuda_memory_provider_params_handle_t hParams ,
744770 umf_usm_memory_type_t memoryType ) {
745- (void )hParams ;
746771 (void )memoryType ;
772+ if (!hParams ) {
773+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
774+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
775+ }
776+
747777 LOG_ERR ("CUDA provider is disabled (UMF_BUILD_CUDA_PROVIDER is OFF)!" );
748- return UMF_RESULT_ERROR_NOT_SUPPORTED ;
778+ return UMF_RESULT_ERROR_DEPENDENCY_UNAVAILABLE ;
749779}
750780
751781umf_result_t umfCUDAMemoryProviderParamsSetAllocFlags (
752782 umf_cuda_memory_provider_params_handle_t hParams , unsigned int flags ) {
753- (void )hParams ;
754783 (void )flags ;
784+ if (!hParams ) {
785+ LOG_ERR ("CUDA Memory Provider params handle is NULL" );
786+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
787+ }
788+
755789 LOG_ERR ("CUDA provider is disabled (UMF_BUILD_CUDA_PROVIDER is OFF)!" );
756- return UMF_RESULT_ERROR_NOT_SUPPORTED ;
790+ return UMF_RESULT_ERROR_DEPENDENCY_UNAVAILABLE ;
757791}
758792
759793const umf_memory_provider_ops_t * umfCUDAMemoryProviderOps (void ) {
0 commit comments