[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/16] exec.c: Use cpu_get_phys_page_asidx_debug
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH 07/16] exec.c: Use cpu_get_phys_page_asidx_debug |
Date: |
Thu, 5 Nov 2015 18:15:49 +0000 |
Use cpu_get_phys_page_asidx_debug() when doing virtual-to-physical
conversions in debug related code, so that we can obtain the right
address space index and thus select the correct AddressSpace,
rather than always using cpu->as.
Signed-off-by: Peter Maydell <address@hidden>
---
exec.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/exec.c b/exec.c
index 13da780..bc6ab8a 100644
--- a/exec.c
+++ b/exec.c
@@ -684,9 +684,10 @@ static void breakpoint_invalidate(CPUState *cpu,
target_ulong pc)
#else
static void breakpoint_invalidate(CPUState *cpu, target_ulong pc)
{
- hwaddr phys = cpu_get_phys_page_debug(cpu, pc);
+ int asidx;
+ hwaddr phys = cpu_get_phys_page_asidx_debug(cpu, pc, &asidx);
if (phys != -1) {
- tb_invalidate_phys_addr(cpu->as,
+ tb_invalidate_phys_addr(cpu->cpu_ases[asidx].as,
phys | (pc & ~TARGET_PAGE_MASK));
}
}
@@ -3502,8 +3503,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
target_ulong page;
while (len > 0) {
+ int asidx;
+
page = addr & TARGET_PAGE_MASK;
- phys_addr = cpu_get_phys_page_debug(cpu, page);
+ phys_addr = cpu_get_phys_page_asidx_debug(cpu, page, &asidx);
/* if no physical page mapped, return an error */
if (phys_addr == -1)
return -1;
@@ -3512,9 +3515,11 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
l = len;
phys_addr += (addr & ~TARGET_PAGE_MASK);
if (is_write) {
- cpu_physical_memory_write_rom(cpu->as, phys_addr, buf, l);
+ cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
+ phys_addr, buf, l);
} else {
- address_space_rw(cpu->as, phys_addr, MEMTXATTRS_UNSPECIFIED,
+ address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
+ MEMTXATTRS_UNSPECIFIED,
buf, l, 0);
}
len -= l;
--
1.9.1
- Re: [Qemu-devel] [PATCH 04/16] exec.c: Add address space index to CPUIOTLBEntry, (continued)
[Qemu-devel] [PATCH 02/16] exec.c: Allow target CPUs to define multiple AddressSpaces, Peter Maydell, 2015/11/05
Re: [Qemu-devel] [PATCH 02/16] exec.c: Allow target CPUs to define multiple AddressSpaces, Paolo Bonzini, 2015/11/09
[Qemu-devel] [PATCH 06/16] include/qom/cpu.h: Add new get_phys_page_asidx_debug method, Peter Maydell, 2015/11/05
[Qemu-devel] [PATCH 07/16] exec.c: Use cpu_get_phys_page_asidx_debug,
Peter Maydell <=
[Qemu-devel] [PATCH 15/16] [RFC] hw/arm/virt: add secure memory region and UART, Peter Maydell, 2015/11/05
[Qemu-devel] [PATCH 03/16] tlb_set_page_with_attrs: Take argument specifying AddressSpace to use, Peter Maydell, 2015/11/05
Re: [Qemu-devel] [PATCH 03/16] tlb_set_page_with_attrs: Take argument specifying AddressSpace to use, Paolo Bonzini, 2015/11/09