Extract the MMIO region mapping logic from mshv_map_user_memory() into a dedicated mshv_map_mmio_region() function. This improves code organization and consistency with the existing mshv_map_pinned_region() and mshv_map_movable_region() functions.
The new function encapsulates the hv_call_map_mmio_pfns() call, making the switch statement in mshv_map_user_memory() more concise and maintaining a uniform pattern for all region types. Signed-off-by: Stanislav Kinsburskii <[email protected]> --- drivers/hv/mshv_regions.c | 9 +++++++++ drivers/hv/mshv_root.h | 2 ++ drivers/hv/mshv_root_main.c | 5 +---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/hv/mshv_regions.c b/drivers/hv/mshv_regions.c index 28d3f488d89f..6b703b269a4f 100644 --- a/drivers/hv/mshv_regions.c +++ b/drivers/hv/mshv_regions.c @@ -831,3 +831,12 @@ int mshv_map_movable_region(struct mshv_mem_region *region) return mshv_region_collect_and_map(region, 0, region->nr_pfns, false); } + +int mshv_map_mmio_region(struct mshv_mem_region *region, + unsigned long mmio_pfn) +{ + struct mshv_partition *partition = region->partition; + + return hv_call_map_mmio_pfns(partition->pt_id, region->start_gfn, + mmio_pfn, region->nr_pfns); +} diff --git a/drivers/hv/mshv_root.h b/drivers/hv/mshv_root.h index 02c1c11f701c..1f92b9f85b60 100644 --- a/drivers/hv/mshv_root.h +++ b/drivers/hv/mshv_root.h @@ -375,5 +375,7 @@ void mshv_region_movable_fini(struct mshv_mem_region *region); bool mshv_region_movable_init(struct mshv_mem_region *region); int mshv_map_pinned_region(struct mshv_mem_region *region); int mshv_map_movable_region(struct mshv_mem_region *region); +int mshv_map_mmio_region(struct mshv_mem_region *region, + unsigned long mmio_pfn); #endif /* _MSHV_ROOT_H_ */ diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c index 91dab2a3bc92..adb09350205a 100644 --- a/drivers/hv/mshv_root_main.c +++ b/drivers/hv/mshv_root_main.c @@ -1302,10 +1302,7 @@ mshv_map_user_memory(struct mshv_partition *partition, ret = mshv_map_movable_region(region); break; case MSHV_REGION_TYPE_MMIO: - ret = hv_call_map_mmio_pfns(partition->pt_id, - region->start_gfn, - mmio_pfn, - region->nr_pfns); + ret = mshv_map_mmio_region(region, mmio_pfn); break; }

