[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH 07/16] exec.c: Use cpu_get_phys_page_asidx_debug
From: |
Edgar E. Iglesias |
Subject: |
Re: [Qemu-arm] [PATCH 07/16] exec.c: Use cpu_get_phys_page_asidx_debug |
Date: |
Fri, 6 Nov 2015 14:38:48 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Nov 05, 2015 at 06:15:49PM +0000, Peter Maydell wrote:
> 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.
Reviewed-by: Edgar E. Iglesias <address@hidden>
>
> 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
>
[Qemu-arm] [PATCH 12/16] qom/cpu: Add MemoryRegion property, Peter Maydell, 2015/11/05