Message ID | 20250424094653.35932-11-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | include: Remove "exec/exec-all.h" | expand |
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.
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,