diff options
-rw-r--r-- | libc-parts/ChangeLog | 6 | ||||
-rw-r--r-- | libc-parts/process-spawn.c | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/libc-parts/ChangeLog b/libc-parts/ChangeLog index 67d6fb5..deb95f2 100644 --- a/libc-parts/ChangeLog +++ b/libc-parts/ChangeLog @@ -1,3 +1,9 @@ +2008-06-07 Neal H. Walfield <neal@gnu.org> + + * process-spawn.c (process_spawn): When allocating a folio, only + update the shadow capability's type after the folio has actually + been allocated. + 2008-06-05 Neal H. Walfield <neal@gnu.org> * process-spawn.c (as_insert_custom): Replace use of as_insert diff --git a/libc-parts/process-spawn.c b/libc-parts/process-spawn.c index 52560d8..6cb089f 100644 --- a/libc-parts/process-spawn.c +++ b/libc-parts/process-spawn.c @@ -345,15 +345,17 @@ process_spawn (addr_t activity, if (ADDR_IS_VOID (folio_local_addr)) panic ("Failed to allocate address space for folio"); - as_ensure_use (folio_local_addr, - ({ - slot->type = cap_folio; - })); + as_ensure (folio_local_addr); error_t err = rm_folio_alloc (activity, folio_local_addr, FOLIO_POLICY_DEFAULT); if (err) panic ("Failed to allocate folio"); + + as_slot_lookup_use (folio_local_addr, + ({ + slot->type = cap_folio; + })); #endif folio_index = 0; |