From 497dc5e8d3ca47f88381ae704861b5524501cf83 Mon Sep 17 00:00:00 2001 From: Jan Stoess Date: Fri, 6 Aug 2010 11:05:43 +0200 Subject: [PATCH] Fix a slight inconsistency in the overmap semantics of Pistachio using the new mapping database, when overmapping from sigma0. Thanks to Norman Feske. --- kernel/src/generic/linear_ptab_walker.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/src/generic/linear_ptab_walker.cc b/kernel/src/generic/linear_ptab_walker.cc index 2f018789..ae73885e 100644 --- a/kernel/src/generic/linear_ptab_walker.cc +++ b/kernel/src/generic/linear_ptab_walker.cc @@ -527,10 +527,12 @@ void space_t::map_fpage (fpage_t snd_fp, word_t base, flush_tlb (get_current_space ()); /* - * We might have invalidated the source mapping during the - * unmap operation above. If so, we have to skip it. + * We might have invalidated the source mapping during the unmap + * operation above. If so, we have to skip it (unless whe deal with + * sigma0 mappings, where source mappings are invalid by default). + * */ - if (! fpg->is_valid (this, f_size)) + if (!fpg->is_valid (this, f_size) && !is_sigma0_space(this)) goto Next_receiver_entry; } else if (tpg->is_valid (t_space, t_size) &&