|  |  | @ -175,7 +175,7 @@ impl InactivePageTable for InactivePageTable0 { | 
			
		
	
		
		
			
				
					
					|  |  |  |     unsafe fn activate(&self) { |  |  |  |     unsafe fn activate(&self) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         let old_frame = satp::read().frame(); |  |  |  |         let old_frame = satp::read().frame(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         let new_frame = self.p2_frame.clone(); |  |  |  |         let new_frame = self.p2_frame.clone(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         debug!("switch table {:?} -> {:?}", old_frame, new_frame); |  |  |  |         debug!("switch table {:x?} -> {:x?}", old_frame, new_frame); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if old_frame != new_frame { |  |  |  |         if old_frame != new_frame { | 
			
		
	
		
		
			
				
					
					|  |  |  |             satp::set(satp::Mode::Sv32, 0, new_frame); |  |  |  |             satp::set(satp::Mode::Sv32, 0, new_frame); | 
			
		
	
		
		
			
				
					
					|  |  |  |             sfence_vma_all(); |  |  |  |             sfence_vma_all(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -185,13 +185,13 @@ impl InactivePageTable for InactivePageTable0 { | 
			
		
	
		
		
			
				
					
					|  |  |  |     unsafe fn with(&self, f: impl FnOnce()) { |  |  |  |     unsafe fn with(&self, f: impl FnOnce()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         let old_frame = satp::read().frame(); |  |  |  |         let old_frame = satp::read().frame(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         let new_frame = self.p2_frame.clone(); |  |  |  |         let new_frame = self.p2_frame.clone(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         debug!("switch table {:?} -> {:?}", old_frame, new_frame); |  |  |  |         debug!("switch table {:x?} -> {:x?}", old_frame, new_frame); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if old_frame != new_frame { |  |  |  |         if old_frame != new_frame { | 
			
		
	
		
		
			
				
					
					|  |  |  |             satp::set(satp::Mode::Sv32, 0, new_frame); |  |  |  |             satp::set(satp::Mode::Sv32, 0, new_frame); | 
			
		
	
		
		
			
				
					
					|  |  |  |             sfence_vma_all(); |  |  |  |             sfence_vma_all(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         f(); |  |  |  |         f(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         debug!("switch table {:?} -> {:?}", new_frame, old_frame); |  |  |  |         debug!("switch table {:x?} -> {:x?}", new_frame, old_frame); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if old_frame != new_frame { |  |  |  |         if old_frame != new_frame { | 
			
		
	
		
		
			
				
					
					|  |  |  |             satp::set(satp::Mode::Sv32, 0, old_frame); |  |  |  |             satp::set(satp::Mode::Sv32, 0, old_frame); | 
			
		
	
		
		
			
				
					
					|  |  |  |             sfence_vma_all(); |  |  |  |             sfence_vma_all(); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |