Message ID | 1330816936-21772-1-git-send-email-agraf@suse.de |
---|---|
State | New |
Headers | show |
> If the guest process tells us to map at a specific address, we shouldn't > increase the "last automatic mapping ended here" variable. That sounds reasonable, in fact I'd go further. Tests on an x86-linux machine (both 32-bit and 64-bit userspace) show that if the requested address is not available then it is completely ignored. > + if (start == mmap_next_start && addr >= TASK_UNMAPPED_BASE) { > + mmap_next_start = addr; Code does not match description. Paul
diff --git a/linux-user/mmap.c b/linux-user/mmap.c index 2245f40..a0c1347 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -253,7 +253,11 @@ static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size) } } } - mmap_next_start = addr; + + if (start == mmap_next_start && addr >= TASK_UNMAPPED_BASE) { + mmap_next_start = addr; + } + return last_addr; } #endif
If the guest process tells us to map at a specific address, we shouldn't increase the "last automatic mapping ended here" variable. This patch brings the reserved_va code in line with the default case. Signed-off-by: Alexander Graf <agraf@suse.de> --- linux-user/mmap.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)