@@ -478,7 +478,7 @@ impl<'a, 'rcu, C: PageTableConfig> Entry<'a, 'rcu, C> {
478478 map_va: self . va@ as int,
479479 frame_pa: self . node. paddr( ) as int,
480480 in_frame_index: self . idx as int,
481- map_to_pa: pt . start_paddr ( ) as int,
481+ map_to_pa: pa as int,
482482 level,
483483 phantom: PhantomData :: <C >,
484484 } ;
@@ -498,7 +498,10 @@ impl<'a, 'rcu, C: PageTableConfig> Entry<'a, 'rcu, C> {
498498 }
499499 assert( spt. frames. value( ) [ self . node. paddr( ) as int] . level as int == level as int) ;
500500 spt. instance. set_child( i_pte, & mut spt. frames, & mut spt. i_ptes, & spt. ptes) ;
501- spt. perms. tracked_insert( pt. start_paddr( ) , perm) ;
501+ spt. perms. tracked_insert( pa, perm) ;
502+
503+ // i_pte.entry_pa() == i_pte.pte_paddr_spec(). @see entry_pa
504+ assert( spt. i_ptes. value( ) . contains_key( self . pte. pte_paddr( ) as int) ) ;
502505 }
503506
504507 assert( spt. wf( ) ) ;
@@ -514,12 +517,10 @@ impl<'a, 'rcu, C: PageTableConfig> Entry<'a, 'rcu, C> {
514517 assert( spt. alloc_model. meta_map. contains_key( pa as int) ) ;
515518 assert( spt. alloc_model. meta_map. contains_key( self . pte. frame_paddr( ) as int) ) ;
516519
517- // assert(spt_do_not_change_except_modify_pte(spt, old(spt), self.pte.pte_paddr() as int));
518-
519520 assert( self . wf( spt) ) ;
520- assume ( spt_do_not_change_except_modify_pte ( spt, old( spt) , self . pte . pte_paddr ( ) as int ) ) ;
521- assume ( spt_do_not_change_above_level( spt, old( spt) , level) ) ;
522- assume ( alloc_model_do_not_change_except_add_frame ( spt, old( spt) , pa ) ) ;
521+ assert ( alloc_model_do_not_change_except_add_frame ( spt, old( spt) , pa ) ) ;
522+ assert ( spt_do_not_change_above_level( spt, old( spt) , level) ) ;
523+ assert ( spt_do_not_change_except_modify_pte ( spt, old( spt) , self . pte . pte_paddr ( ) as int ) ) ;
523524
524525 let node_ref = PageTableNodeRef :: borrow_paddr( pa, Tracked ( & spt. alloc_model) ) ;
525526 assert( node_ref. level_spec( & spt. alloc_model) == level - 1 ) ;
0 commit comments