From d7b5ca749b84b648b3a7727372dd2e79147df105 Mon Sep 17 00:00:00 2001 From: Jim Harris <james.r.harris@intel.com> Date: Mon, 2 Dec 2019 17:01:07 -0700 Subject: [PATCH] env: reuse set_translation code for clear_translation The code is exactly the same - we can just have spdk_mem_map_clear_translation call spdk_mem_map_set_translation with translation = map->default_translation. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I6a2ce39b0397be9d29b1a4c1cdfba15025afba7a Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/476529 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> --- lib/env_dpdk/memory.c | 36 +----------------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/lib/env_dpdk/memory.c b/lib/env_dpdk/memory.c index 33e56fcc1e..2159670489 100644 --- a/lib/env_dpdk/memory.c +++ b/lib/env_dpdk/memory.c @@ -585,41 +585,7 @@ spdk_mem_map_set_translation(struct spdk_mem_map *map, uint64_t vaddr, uint64_t int spdk_mem_map_clear_translation(struct spdk_mem_map *map, uint64_t vaddr, uint64_t size) { - uint64_t vfn_2mb; - struct map_1gb *map_1gb; - uint64_t idx_1gb; - struct map_2mb *map_2mb; - - if ((uintptr_t)vaddr & ~MASK_256TB) { - DEBUG_PRINT("invalid usermode virtual address %lu\n", vaddr); - return -EINVAL; - } - - /* For now, only 2 MB-aligned registrations are supported */ - if (((uintptr_t)vaddr & MASK_2MB) || (size & MASK_2MB)) { - DEBUG_PRINT("invalid %s parameters, vaddr=%lu len=%ju\n", - __func__, vaddr, size); - return -EINVAL; - } - - vfn_2mb = vaddr >> SHIFT_2MB; - - while (size) { - map_1gb = spdk_mem_map_get_map_1gb(map, vfn_2mb); - if (!map_1gb) { - DEBUG_PRINT("could not get %p map\n", (void *)vaddr); - return -ENOMEM; - } - - idx_1gb = MAP_1GB_IDX(vfn_2mb); - map_2mb = &map_1gb->map[idx_1gb]; - map_2mb->translation_2mb = map->default_translation; - - size -= VALUE_2MB; - vfn_2mb++; - } - - return 0; + return spdk_mem_map_set_translation(map, vaddr, size, map->default_translation); } inline uint64_t