diff --git a/hipamd/src/hip_mempool.cpp b/hipamd/src/hip_mempool.cpp index bb11708264..80659b0c6d 100644 --- a/hipamd/src/hip_mempool.cpp +++ b/hipamd/src/hip_mempool.cpp @@ -171,6 +171,20 @@ hipError_t hipMemPoolCreate(hipMemPool_t* mem_pool, const hipMemPoolProps* pool_ if (mem_pool == nullptr) { HIP_RETURN(hipErrorInvalidValue); } + + // validate hipMemAllocationType value + if (pool_props->allocType != hipMemAllocationTypeInvalid && + pool_props->allocType != hipMemAllocationTypePinned && + pool_props->allocType != hipMemAllocationTypeMax) { + HIP_RETURN(hipErrorInvalidValue); + } + + // validate hipMemLocationType value + if (pool_props->location.type != hipMemLocationTypeInvalid && + pool_props->location.type != hipMemLocationTypeDevice) { + HIP_RETURN(hipErrorInvalidValue); + } + // Make sure the pool creation occurs on a valid device if ((pool_props->location.type != hipMemLocationTypeDevice) || (pool_props->location.id >= g_devices.size())) {