summaryrefslogtreecommitdiff
path: root/libhurd-mm
diff options
context:
space:
mode:
authorneal <neal>2008-08-15 11:19:51 +0000
committerneal <neal>2008-08-15 11:19:51 +0000
commitf898faa412866173ea6ebe14194e925647b37d96 (patch)
tree8daec34f862376e4ea4a62b7178312aada98f499 /libhurd-mm
parent87bda0394f5399646c0b9872b9c9483d976edd2e (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/ChangeLog5
-rw-r--r--libhurd-mm/storage.c6
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),