dma_map->dev = dev;
        dma_map->dma_need_sync = false;
        dma_map->dma_pages_cnt = nr_pages;
-       refcount_set(&dma_map->users, 0);
+       refcount_set(&dma_map->users, 1);
        list_add(&dma_map->list, &umem->xsk_dma_list);
        return dma_map;
 }
        pool->dev = dma_map->dev;
        pool->dma_pages_cnt = dma_map->dma_pages_cnt;
        pool->dma_need_sync = dma_map->dma_need_sync;
-       refcount_inc(&dma_map->users);
        memcpy(pool->dma_pages, dma_map->dma_pages,
               pool->dma_pages_cnt * sizeof(*pool->dma_pages));
 
                if (err)
                        return err;
 
+               refcount_inc(&dma_map->users);
                return 0;
        }