diff options
author | Peter Maydell | 2016-01-21 15:15:05 +0100 |
---|---|---|
committer | Peter Maydell | 2016-01-21 15:15:05 +0100 |
commit | d7898cda81b6efa6b2d7a749882695cdcf280eaa (patch) | |
tree | 2e67001b7985d21d62d8b9ad26b46c8173612dc4 /cputlb.c | |
parent | cpu: Add new asidx_from_attrs() method (diff) | |
download | qemu-d7898cda81b6efa6b2d7a749882695cdcf280eaa.tar.gz qemu-d7898cda81b6efa6b2d7a749882695cdcf280eaa.tar.xz qemu-d7898cda81b6efa6b2d7a749882695cdcf280eaa.zip |
cputlb.c: Use correct address space when looking up MemoryRegionSection
When looking up the MemoryRegionSection for the new TLB entry in
tlb_set_page_with_attrs(), use cpu_asidx_from_attrs() to determine
the correct address space index for the lookup, and pass it into
address_space_translate_for_iotlb().
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Diffstat (limited to 'cputlb.c')
-rw-r--r-- | cputlb.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -356,6 +356,7 @@ void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr, CPUTLBEntry *te; hwaddr iotlb, xlat, sz; unsigned vidx = env->vtlb_index++ % CPU_VTLB_SIZE; + int asidx = cpu_asidx_from_attrs(cpu, attrs); assert(size >= TARGET_PAGE_SIZE); if (size != TARGET_PAGE_SIZE) { @@ -363,7 +364,7 @@ void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr, } sz = size; - section = address_space_translate_for_iotlb(cpu, paddr, &xlat, &sz); + section = address_space_translate_for_iotlb(cpu, asidx, paddr, &xlat, &sz); assert(sz >= TARGET_PAGE_SIZE); #if defined(DEBUG_TLB) |