summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hurd/default_pager.defs1
-rw-r--r--mach-defpager/default_pager.c9
-rw-r--r--trans/proxy-defpager.c1
3 files changed, 6 insertions, 5 deletions
diff --git a/hurd/default_pager.defs b/hurd/default_pager.defs
index 7b1549a0..8ad82dcc 100644
--- a/hurd/default_pager.defs
+++ b/hurd/default_pager.defs
@@ -91,6 +91,5 @@ routine default_pager_paging_storage(
will fail. */
routine default_pager_object_set_size(
memory_object : mach_port_t;
- sreplyport reply_port : mach_port_send_once_t;
msgseqno seqno : mach_port_seqno_t;
object_size_limit : vm_size_t);
diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
index 5944e4eb..82619b4b 100644
--- a/mach-defpager/default_pager.c
+++ b/mach-defpager/default_pager.c
@@ -2500,6 +2500,8 @@ ddprintf ("seqnos_memory_object_terminate <%p>: pager_port_lock: <%p>[s:%d,r:%d,
pager_port_wait_for_refs(ds);
+ if (ds->external)
+ pager_request = ds->pager_request;
ds->pager_request = MACH_PORT_NULL;
request_refs = ds->request_refs;
ds->request_refs = 0;
@@ -2515,6 +2517,8 @@ ddprintf ("seqnos_memory_object_terminate <%p>: pager_port_unlock: <%p>[s:%d,r:%
* Now we deallocate our various port rights.
*/
+ kr = mach_port_get_refs(default_pager_self, pager_request,
+ MACH_PORT_RIGHT_SEND, &request_refs);
kr = mach_port_mod_refs(default_pager_self, pager_request,
MACH_PORT_RIGHT_SEND, -request_refs);
if (kr != KERN_SUCCESS)
@@ -3724,7 +3728,6 @@ S_default_pager_object_pages (mach_port_t pager,
kern_return_t
S_default_pager_object_set_size (mach_port_t pager,
- mach_port_t reply_to,
mach_port_seqno_t seqno,
vm_size_t limit)
{
@@ -3736,7 +3739,7 @@ S_default_pager_object_set_size (mach_port_t pager,
return KERN_INVALID_ARGUMENT;
pager_port_lock(ds, seqno);
- pager_port_check_request(ds, reply_to);
+ pager_port_check_request(ds, ds->pager_request);
pager_port_wait_for_readers(ds);
pager_port_wait_for_writers(ds);
@@ -3760,7 +3763,7 @@ S_default_pager_object_set_size (mach_port_t pager,
VM_PROT_ALL, ds->pager);
if (kr != KERN_SUCCESS)
panic ("memory_object_lock_request: %d", kr);
- ds->lock_request = reply_to;
+ ds->lock_request = ds->pager_request;
kr = MIG_NO_REPLY;
}
else
diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c
index cda79592..0a5ab65e 100644
--- a/trans/proxy-defpager.c
+++ b/trans/proxy-defpager.c
@@ -107,7 +107,6 @@ S_default_pager_paging_storage (mach_port_t default_pager,
kern_return_t
S_default_pager_object_set_size (mach_port_t memory_object,
- mach_port_t reply_port,
mach_port_seqno_t seqno,
vm_size_t object_size_limit)
{