diff options
author | neal <neal> | 2008-08-15 11:19:51 +0000 |
---|---|---|
committer | neal <neal> | 2008-08-15 11:19:51 +0000 |
commit | f898faa412866173ea6ebe14194e925647b37d96 (patch) | |
tree | 8daec34f862376e4ea4a62b7178312aada98f499 /libhurd-mm | |
parent | 87bda0394f5399646c0b9872b9c9483d976edd2e (diff) |
2008-08-15 Neal H. Walfield <neal@gnu.org>
* storage.c (storage_free_): Deallocate the folio before updating
the shadow capability.
Diffstat (limited to 'libhurd-mm')
-rw-r--r-- | libhurd-mm/ChangeLog | 5 | ||||
-rw-r--r-- | libhurd-mm/storage.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/libhurd-mm/ChangeLog b/libhurd-mm/ChangeLog index 6ad3c2d..d15c1e9 100644 --- a/libhurd-mm/ChangeLog +++ b/libhurd-mm/ChangeLog @@ -1,3 +1,8 @@ +2008-08-15 Neal H. Walfield <neal@gnu.org> + + * storage.c (storage_free_): Deallocate the folio before updating + the shadow capability. + 2008-08-12 Neal H. Walfield <neal@gnu.org> * storage.c (storage_low_mutex): Use diff --git a/libhurd-mm/storage.c b/libhurd-mm/storage.c index d9698a1..d6d21a1 100644 --- a/libhurd-mm/storage.c +++ b/libhurd-mm/storage.c @@ -727,6 +727,9 @@ storage_free_ (addr_t object, bool unmap_now) ss_mutex_unlock (&storage_descs_lock); + error_t err = rm_folio_free (meta_data_activity, folio); + assert (err == 0); + as_slot_lookup_use (folio, ({ cap_set_shadow (slot, NULL); @@ -735,9 +738,6 @@ storage_free_ (addr_t object, bool unmap_now) storage_desc_free (storage); - error_t err = rm_folio_free (meta_data_activity, folio); - assert (err == 0); - if (shadow) { addr_t shadow_addr = addr_chop (PTR_TO_ADDR (shadow), |