qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap
Date: Thu, 24 Dec 2015 10:54:09 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0


Le 24/12/2015 02:07, address@hidden a écrit :
> From: Chen Gang <address@hidden>
> 
> In this case, real_end is larger than end, which may cause mmap_frag
> process the incorrect memory region.
> 
> Signed-off-by: Chen Gang <address@hidden>
> ---
>  linux-user/mmap.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index 7b459d5..57b0361 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -536,7 +536,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int 
> prot,
>          /* handle the end of the mapping */
>          if (end < real_end) {
>              ret = mmap_frag(real_end - qemu_host_page_size,
> -                            real_end - qemu_host_page_size, real_end,
> +                            real_end - qemu_host_page_size, end,
>                              prot, flags, fd,
>                              offset + real_end - qemu_host_page_size - start);
>              if (ret == -1)
> 

The fragment must effectively be mapped only to "end" not to "real_end"
(which is a host page aligned address, and thus this is not a fragment).
It is consistent with what it is done in the case of one single page.

Reviewed-by: Laurent Vivier <address@hidden>



reply via email to

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