diff options
author | neal <neal> | 2008-07-04 08:54:32 +0000 |
---|---|---|
committer | neal <neal> | 2008-07-04 08:54:32 +0000 |
commit | 9b1b8cc369200d061d294e072683f9ac4f74982a (patch) | |
tree | f3610f9fe4ce364ee0ea8d4938ee4c0d3b61be36 /hurd | |
parent | b314008673a851faedebac93cfdf9dea7c39d641 (diff) |
2008-07-04 Neal H. Walfield <neal@gnu.org>
* cap.h (cap_copy_x): Also call cap_shootdown if the version field
changes.
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/ChangeLog | 5 | ||||
-rw-r--r-- | hurd/cap.h | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/hurd/ChangeLog b/hurd/ChangeLog index ce3770c..6018dd7 100644 --- a/hurd/ChangeLog +++ b/hurd/ChangeLog @@ -1,5 +1,10 @@ 2008-07-04 Neal H. Walfield <neal@gnu.org> + * cap.h (cap_copy_x): Also call cap_shootdown if the version field + changes. + +2008-07-04 Neal H. Walfield <neal@gnu.org> + * activity.h (ACTIVITY_MEMORY_POLICY): Reverse argument order. (struct activity_memory_policy): Reverse order of fields. @@ -640,7 +640,7 @@ cap_copy_x (activity_t activity, #ifdef RM_INTERN /* Changing a capability can change how addresses are translated. - In this case, we need to shoot down all cache translation. */ + In this case, we need to shoot down all cached translations. */ bool changes_translation = false; if (target->oid != source.oid) @@ -648,6 +648,11 @@ cap_copy_x (activity_t activity, debug (5, "OID mismatch, changes translation"); changes_translation = true; } + else if (target->version != source.version) + { + debug (5, "Version mismatch, changes translation"); + changes_translation = true; + } if (subpage != CAP_SUBPAGE (target) || subpages != CAP_SUBPAGES (target)) { @@ -677,6 +682,9 @@ cap_copy_x (activity_t activity, { extern void cap_shootdown (struct activity *activity, struct cap *cap); + debug (5, "Translation changed: " CAP_FMT " -> " CAP_FMT, + CAP_PRINTF (target), CAP_PRINTF (&source)); + cap_shootdown (activity, target); } #endif |