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>
This commit is contained in:
parent
1f08daeb81
commit
d7b5ca749b
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user