[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>