From: Chen Gang <[email protected]> mmap() size in mmap_frag() is qemu_host_page_size, but the outside calls page_set_flags() may be not with qemu_host_page_size. So after mmap(), call page_set_flags() in time.
After this fix, for the next call for the same region, prot1 will be PAGE_VALID (not 0), so can avoid to enter "if (prot1 == 0)" case, again. Signed-off-by: Chen Gang <[email protected]> --- linux-user/mmap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index 445e8c6..7807ed0 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -162,6 +162,8 @@ static int mmap_frag(abi_ulong real_start, flags | MAP_ANONYMOUS, -1, 0); if (p == MAP_FAILED) return -1; + page_set_flags(real_start, real_start + qemu_host_page_size, + PAGE_VALID); prot1 = prot; } prot1 &= PAGE_BITS; -- 1.9.1
