clear pending status before calling memory commit
clear pending status before calling memory commit. Otherwise when memory_region_finalize is called, memory_region_transaction_depth is 0 and memory_region_update_pending is true. That's wrong. Signed-off -by: Anthony Xu <anthony.xu@intel.com> Message-Id: <4712D8F4B26E034E80552F30A67BE0B1A2E3D5@ORSMSX112.amr.corp.intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									0832970119
								
							
						
					
					
						commit
						ade9c1aac5
					
				
							
								
								
									
										10
									
								
								memory.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								memory.c
									
									
									
									
									
								
							@ -906,12 +906,6 @@ void memory_region_transaction_begin(void)
 | 
			
		||||
    ++memory_region_transaction_depth;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void memory_region_clear_pending(void)
 | 
			
		||||
{
 | 
			
		||||
    memory_region_update_pending = false;
 | 
			
		||||
    ioeventfd_update_pending = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void memory_region_transaction_commit(void)
 | 
			
		||||
{
 | 
			
		||||
    AddressSpace *as;
 | 
			
		||||
@ -927,14 +921,14 @@ void memory_region_transaction_commit(void)
 | 
			
		||||
            QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) {
 | 
			
		||||
                address_space_update_topology(as);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            memory_region_update_pending = false;
 | 
			
		||||
            MEMORY_LISTENER_CALL_GLOBAL(commit, Forward);
 | 
			
		||||
        } else if (ioeventfd_update_pending) {
 | 
			
		||||
            QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) {
 | 
			
		||||
                address_space_update_ioeventfds(as);
 | 
			
		||||
            }
 | 
			
		||||
            ioeventfd_update_pending = false;
 | 
			
		||||
        }
 | 
			
		||||
        memory_region_clear_pending();
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user