| Submitter | Alexander Graf |
|---|---|
| Date | March 3, 2012, 11:22 p.m. |
| Message ID | <1330816936-21772-1-git-send-email-agraf@suse.de> |
| Download | mbox | patch |
| Permalink | /patch/144466/ |
| State | New |
| Headers | show |
Comments
> 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
Patch
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(-)