IBV_ACCESS_LOCAL_WRITE);
        if (!obj)
                return -1;
+       memset(&mkey_attr, 0, sizeof(mkey_attr));
        mkey_attr.addr = (uintptr_t)addr;
        mkey_attr.size = length;
        mkey_attr.umem_id = ((struct mlx5_devx_umem *)(obj))->umem_id;
        mkey_attr.pd = mlx5_pd->pdn;
-       mkey_attr.log_entity_size = 0;
-       mkey_attr.pg_access = 0;
-       mkey_attr.klm_array = NULL;
-       mkey_attr.klm_num = 0;
-       mkey_attr.relaxed_ordering_read = 0;
-       mkey_attr.relaxed_ordering_write = 0;
        if (!haswell_broadwell_cpu) {
                mkey_attr.relaxed_ordering_write = attr.relaxed_ordering_write;
                mkey_attr.relaxed_ordering_read = attr.relaxed_ordering_read;
 
                mlx5_free(mem);
                return -rte_errno;
        }
+       memset(&mkey_attr, 0, sizeof(mkey_attr));
        mkey_attr.addr = (uintptr_t)mem;
        mkey_attr.size = size;
        mkey_attr.umem_id = mlx5_os_get_umem_id(mem_mng->umem);
        mkey_attr.pd = sh->pdn;
-       mkey_attr.log_entity_size = 0;
-       mkey_attr.pg_access = 0;
-       mkey_attr.klm_array = NULL;
-       mkey_attr.klm_num = 0;
        mkey_attr.relaxed_ordering_write = sh->cmng.relaxed_ordering_write;
        mkey_attr.relaxed_ordering_read = sh->cmng.relaxed_ordering_read;
        mem_mng->dm = mlx5_devx_cmd_mkey_create(sh->ctx, &mkey_attr);
 
                        .size = log_size,
                        .pd = priv->pdn,
                        .pg_access = 1,
-                       .klm_array = NULL,
-                       .klm_num = 0,
-                       .relaxed_ordering_read = 0,
-                       .relaxed_ordering_write = 0,
        };
        struct mlx5_devx_virtq_attr attr = {
                .type = MLX5_VIRTQ_MODIFY_TYPE_DIRTY_BITMAP_PARAMS,
 
                goto error;
        }
        DRV_LOG(DEBUG, "Dump fill Mkey = %u.", priv->null_mr->lkey);
+       memset(&mkey_attr, 0, sizeof(mkey_attr));
        for (i = 0; i < mem->nregions; i++) {
                reg = &mem->regions[i];
                entry = rte_zmalloc(__func__, sizeof(*entry), 0);
                mkey_attr.umem_id = entry->umem->umem_id;
                mkey_attr.pd = priv->pdn;
                mkey_attr.pg_access = 1;
-               mkey_attr.klm_array = NULL;
-               mkey_attr.klm_num = 0;
-               mkey_attr.relaxed_ordering_read = 0;
-               mkey_attr.relaxed_ordering_write = 0;
                entry->mkey = mlx5_devx_cmd_mkey_create(priv->ctx, &mkey_attr);
                if (!entry->mkey) {
                        DRV_LOG(ERR, "Failed to create direct Mkey.");