qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] linux-user: Fix h2g usage in page_find_alloc


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH] linux-user: Fix h2g usage in page_find_alloc
Date: Mon, 8 Dec 2008 19:16:22 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

On Wed, Dec 03, 2008 at 01:29:41PM +0200, Kirill A. Shutemov wrote:
> From: Jan Kiszka <address@hidden>
> 
> Paul's comment on my first approach to fix the h2g usage in
> page_find_alloc finally open my eyes about what the code is actually
> supposed to do:
> 
> With the help of h2g_valid we can no cleanly check if a freshly allocate
> page (for host usage) is guest-reachable and, in case it is, mark it
> reserved in the guest's address range.

Applied, thanks.

> Signed-off-by: Jan Kiszka <address@hidden>
> Signed-off-by: Kirill A. Shutemov <address@hidden>
> ---
>  exec.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 58a0cff..105812f 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -305,14 +305,13 @@ static inline PageDesc *page_find_alloc(target_ulong 
> index)
>      if (!p) {
>          /* allocate if not found */
>  #if defined(CONFIG_USER_ONLY)
> -        unsigned long addr;
>          size_t len = sizeof(PageDesc) * L2_SIZE;
>          /* Don't use qemu_malloc because it may recurse.  */
>          p = mmap(0, len, PROT_READ | PROT_WRITE,
>                   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
>          *lp = p;
> -        addr = h2g(p);
> -        if (addr == (target_ulong)addr) {
> +        if (h2g_valid(p)) {
> +            unsigned long addr = h2g(p);
>              page_set_flags(addr & TARGET_PAGE_MASK,
>                             TARGET_PAGE_ALIGN(addr + len),
>                             PAGE_RESERVED); 
> -- 
> 1.6.0.2.GIT
> 
> 
> 
> 

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   address@hidden         | address@hidden
   `-    people.debian.org/~aurel32 | www.aurel32.net




reply via email to

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