qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/16] exec.c: Use cpu_get_phys_page_asidx_debug


From: Edgar E. Iglesias
Subject: Re: [Qemu-devel] [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
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]