Partial backport of: exec.c: Handle IOMMUs in address_space_translate_for_iotlb()

We just want the parameter changes here.

Partial backport of commit 1f871c5e6b0f30644a60a81a6a7aadb3afb030ac from
qemu
This commit is contained in:
Lioncash 2018-11-16 21:24:53 -05:00
parent 1c0e09c467
commit 3a0ab1a64a
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
3 changed files with 6 additions and 3 deletions

View file

@ -202,7 +202,8 @@ void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
} }
sz = size; sz = size;
section = address_space_translate_for_iotlb(cpu, asidx, paddr, &xlat, &sz); section = address_space_translate_for_iotlb(cpu, asidx, paddr, &xlat, &sz,
attrs, &prot);
assert(sz >= TARGET_PAGE_SIZE); assert(sz >= TARGET_PAGE_SIZE);
tlb_debug("vaddr=" TARGET_FMT_lx " paddr=0x" TARGET_FMT_plx tlb_debug("vaddr=" TARGET_FMT_lx " paddr=0x" TARGET_FMT_plx

View file

@ -495,7 +495,8 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
MemoryRegionSection * MemoryRegionSection *
address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr, address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr,
hwaddr *xlat, hwaddr *plen) hwaddr *xlat, hwaddr *plen,
MemTxAttrs attrs, int *prot)
{ {
MemoryRegionSection *section; MemoryRegionSection *section;
// Unicorn: atomic_read used instead of atomic_rcu_read // Unicorn: atomic_read used instead of atomic_rcu_read

View file

@ -364,7 +364,8 @@ void tb_flush_jmp_cache(CPUState *cpu, target_ulong addr);
MemoryRegionSection * MemoryRegionSection *
address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr, address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr,
hwaddr *xlat, hwaddr *plen); hwaddr *xlat, hwaddr *plen,
MemTxAttrs attrs, int *prot);
hwaddr memory_region_section_get_iotlb(CPUState *cpu, hwaddr memory_region_section_get_iotlb(CPUState *cpu,
MemoryRegionSection *section, MemoryRegionSection *section,
target_ulong vaddr, target_ulong vaddr,