On 24/04/2025 10:46, Philippe Mathieu-Daudé wrote:
> The next commit will restrict TCG specific code in physmem.c
> using some #ifdef'ry. In order to keep it simple, move
> iotlb_to_section() and memory_region_section_get_iotlb()
> around close together.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> system/physmem.c | 50 ++++++++++++++++++++++++------------------------
> 1 file changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/system/physmem.c b/system/physmem.c
> index 637f2d85324..ccbeae241c4 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -746,6 +746,31 @@ translate_fail:
> return &d->map.sections[PHYS_SECTION_UNASSIGNED];
> }
>
> +MemoryRegionSection *iotlb_to_section(CPUState *cpu,
> + hwaddr index, MemTxAttrs attrs)
> +{
> + int asidx = cpu_asidx_from_attrs(cpu, attrs);
> + CPUAddressSpace *cpuas = &cpu->cpu_ases[asidx];
> + AddressSpaceDispatch *d = cpuas->memory_dispatch;
> + int section_index = index & ~TARGET_PAGE_MASK;
> + MemoryRegionSection *ret;
> +
> + assert(section_index < d->map.sections_nb);
> + ret = d->map.sections + section_index;
> + assert(ret->mr);
> + assert(ret->mr->ops);
> +
> + return ret;
> +}
> +
> +/* Called from RCU critical section */
> +hwaddr memory_region_section_get_iotlb(CPUState *cpu,
> + MemoryRegionSection *section)
> +{
> + AddressSpaceDispatch *d = flatview_to_dispatch(section->fv);
> + return section - d->map.sections;
> +}
> +
> void cpu_address_space_init(CPUState *cpu, int asidx,
> const char *prefix, MemoryRegion *mr)
> {
> @@ -1002,14 +1027,6 @@ bool cpu_physical_memory_snapshot_get_dirty(DirtyBitmapSnapshot *snap,
> return false;
> }
>
> -/* Called from RCU critical section */
> -hwaddr memory_region_section_get_iotlb(CPUState *cpu,
> - MemoryRegionSection *section)
> -{
> - AddressSpaceDispatch *d = flatview_to_dispatch(section->fv);
> - return section - d->map.sections;
> -}
> -
> static int subpage_register(subpage_t *mmio, uint32_t start, uint32_t end,
> uint16_t section);
> static subpage_t *subpage_init(FlatView *fv, hwaddr base);
> @@ -2669,23 +2686,6 @@ static uint16_t dummy_section(PhysPageMap *map, FlatView *fv, MemoryRegion *mr)
> return phys_section_add(map, §ion);
> }
>
> -MemoryRegionSection *iotlb_to_section(CPUState *cpu,
> - hwaddr index, MemTxAttrs attrs)
> -{
> - int asidx = cpu_asidx_from_attrs(cpu, attrs);
> - CPUAddressSpace *cpuas = &cpu->cpu_ases[asidx];
> - AddressSpaceDispatch *d = cpuas->memory_dispatch;
> - int section_index = index & ~TARGET_PAGE_MASK;
> - MemoryRegionSection *ret;
> -
> - assert(section_index < d->map.sections_nb);
> - ret = d->map.sections + section_index;
> - assert(ret->mr);
> - assert(ret->mr->ops);
> -
> - return ret;
> -}
> -
> static void io_mem_init(void)
> {
> memory_region_init_io(&io_mem_unassigned, NULL, &unassigned_mem_ops, NULL,
Shouldn't that be IOTLB rather than IOMMU in the subject line? Otherwise:
Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
ATB,
Mark.