diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-11-09 22:31:21 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-11-09 22:31:21 +0100 |
commit | 94b2c453829b3aebdaccf7d3d252136b283002b3 (patch) | |
tree | 741fc5b14a62a18f66e349b8234088f59e5c171f /libdiskfs | |
parent | 9480792609c779516ac465ac5a038101032be77d (diff) |
Deal with odd kernel behavior
Some versions of gnumach actually take address as a mapping hint, and would fail
if the hint is bogus. Make sure to pass 0 for those versions.
* console/pager.c (user_pager_create): Make sure to set *user to 0 before
calling vm_map.
* libdiskfs/disk-pager.c (diskfs_start_disk_pager): Make sure to set *image to 0
before calling vm_map.
* libpager/pager-memcpy.c (pager_memcpy): Set window to 0 before calling
vm_map.
* tmpfs/node.c (diskfs_get_filemap): Make sure to set np->dn->u.reg.memref to 0
before calling vm_map.
Diffstat (limited to 'libdiskfs')
-rw-r--r-- | libdiskfs/disk-pager.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libdiskfs/disk-pager.c b/libdiskfs/disk-pager.c index 4083ef27..008aa2dc 100644 --- a/libdiskfs/disk-pager.c +++ b/libdiskfs/disk-pager.c @@ -60,6 +60,7 @@ diskfs_start_disk_pager (struct user_pager_info *upi, MACH_MSG_TYPE_MAKE_SEND); /* Now map the disk image. */ + *image = 0; err = vm_map (mach_task_self (), (vm_address_t *)image, size, 0, 1, disk_pager_port, 0, 0, VM_PROT_READ | (diskfs_readonly ? 0 : VM_PROT_WRITE), |