aboutsummaryrefslogtreecommitdiff
path: root/linux-user
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2010-05-05 16:32:59 +0100
committerPaul Brook <paul@codesourcery.com>2010-05-05 16:32:59 +0100
commit2e9a5713f0567fffaa3518f495b8d16a2b74f84a (patch)
treee7c2651dc7f83db54d27af18a7f8fac7bf848437 /linux-user
parent048d179f20c1499c7f55957df125392de664b6a7 (diff)
Remove PAGE_RESERVED
The usermode PAGE_RESERVED code is not required by the current mmap implementation, and is already broken when guest_base != 0. Unfortunately the bsd emulation still uses the old mmap implementation, so we can't rip it out altogether. Signed-off-by: Paul Brook <paul@codesourcery.com>
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/elfload.c6
-rw-r--r--linux-user/mmap.c19
2 files changed, 0 insertions, 25 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 4d3dd89b2b..13f63cf77e 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -2159,12 +2159,6 @@ static int vma_walker(void *priv, abi_ulong start, abi_ulong end,
{
struct mm_struct *mm = (struct mm_struct *)priv;
- /*
- * Don't dump anything that qemu has reserved for internal use.
- */
- if (flags & PAGE_RESERVED)
- return (0);
-
vma_add_mapping(mm, start, end, flags);
return (0);
}
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 46923c707c..9c062e7078 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -85,14 +85,6 @@ void *qemu_vmalloc(size_t size)
/* Use map and mark the pages as used. */
p = mmap(NULL, size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-
- if (h2g_valid(p)) {
- /* Allocated region overlaps guest address space. This may recurse. */
- abi_ulong addr = h2g(p);
- page_set_flags(addr & TARGET_PAGE_MASK, TARGET_PAGE_ALIGN(addr + size),
- PAGE_RESERVED);
- }
-
mmap_unlock();
return p;
}
@@ -484,9 +476,6 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
}
start = h2g(host_start);
} else {
- int flg;
- target_ulong addr;
-
if (start & ~TARGET_PAGE_MASK) {
errno = EINVAL;
goto fail;
@@ -504,14 +493,6 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
goto fail;
}
- for(addr = real_start; addr < real_end; addr += TARGET_PAGE_SIZE) {
- flg = page_get_flags(addr);
- if (flg & PAGE_RESERVED) {
- errno = ENXIO;
- goto fail;
- }
- }
-
/* worst case: we cannot map the file because the offset is not
aligned, so we read it */
if (!(flags & MAP_ANONYMOUS) &&