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: Edgar E. Iglesias
Subject: Re: [Qemu-devel] [PATCH] linux-user: Fix h2g usage in page_find_alloc
Date: Sat, 6 Dec 2008 21:08:33 +0100
User-agent: Mutt/1.5.16 (2007-06-09)

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.
> 
> Signed-off-by: Jan Kiszka <address@hidden>
> Signed-off-by: Kirill A. Shutemov <address@hidden>

Acked-by: Edgar E. Iglesias <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
> 
> 




reply via email to

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