diff --git a/include/spdk/env.h b/include/spdk/env.h index e735d80d9..83903b96d 100644 --- a/include/spdk/env.h +++ b/include/spdk/env.h @@ -94,6 +94,7 @@ struct spdk_env_opts { * \param socket_id Socket ID to allocate memory on, or SPDK_ENV_SOCKET_ID_ANY * for any socket. * \param flags Combination of SPDK_MALLOC flags (\ref SPDK_MALLOC_DMA, \ref SPDK_MALLOC_SHARE). + * At least one flag must be specified. * * \return a pointer to the allocated memory buffer. */ diff --git a/lib/env_dpdk/env.c b/lib/env_dpdk/env.c index 93f627294..426fad4c6 100644 --- a/lib/env_dpdk/env.c +++ b/lib/env_dpdk/env.c @@ -65,6 +65,10 @@ virt_to_phys(void *vaddr) void * spdk_malloc(size_t size, size_t align, uint64_t *phys_addr, int socket_id, uint32_t flags) { + if (flags == 0) { + return NULL; + } + void *buf = rte_malloc_socket(NULL, size, align, socket_id); if (buf && phys_addr) { *phys_addr = virt_to_phys(buf);