mptsas: really fix migration compatibility
Commit 2e2aa316 removed internal flag msi_in_use, but it existed in vmstate. Restore it for migration to older QEMU versions. Reported-by: Amit Shah <amit.shah@redhat.com> Suggested-by: Amit Shah <amit.shah@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Cc: Marcel Apfelbaum <marcel@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Amit Shah <amit.shah@redhat.com> Cc: Cao jin <caoj.fnst@cn.fujitsu.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									11b7b07f8a
								
							
						
					
					
						commit
						0b646f44d9
					
				@ -1295,6 +1295,8 @@ static void mptsas_scsi_init(PCIDevice *dev, Error **errp)
 | 
				
			|||||||
        /* With msi=auto, we fall back to MSI off silently */
 | 
					        /* With msi=auto, we fall back to MSI off silently */
 | 
				
			||||||
        error_free(err);
 | 
					        error_free(err);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* Only used for migration.  */
 | 
				
			||||||
 | 
					        s->msi_in_use = (ret == 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    memory_region_init_io(&s->mmio_io, OBJECT(s), &mptsas_mmio_ops, s,
 | 
					    memory_region_init_io(&s->mmio_io, OBJECT(s), &mptsas_mmio_ops, s,
 | 
				
			||||||
@ -1370,7 +1372,7 @@ static const VMStateDescription vmstate_mptsas = {
 | 
				
			|||||||
    .post_load = mptsas_post_load,
 | 
					    .post_load = mptsas_post_load,
 | 
				
			||||||
    .fields      = (VMStateField[]) {
 | 
					    .fields      = (VMStateField[]) {
 | 
				
			||||||
        VMSTATE_PCI_DEVICE(dev, MPTSASState),
 | 
					        VMSTATE_PCI_DEVICE(dev, MPTSASState),
 | 
				
			||||||
        VMSTATE_UNUSED(sizeof(bool)), /* Was msi_in_use */
 | 
					        VMSTATE_BOOL(msi_in_use, MPTSASState),
 | 
				
			||||||
        VMSTATE_UINT32(state, MPTSASState),
 | 
					        VMSTATE_UINT32(state, MPTSASState),
 | 
				
			||||||
        VMSTATE_UINT8(who_init, MPTSASState),
 | 
					        VMSTATE_UINT8(who_init, MPTSASState),
 | 
				
			||||||
        VMSTATE_UINT8(doorbell_state, MPTSASState),
 | 
					        VMSTATE_UINT8(doorbell_state, MPTSASState),
 | 
				
			||||||
 | 
				
			|||||||
@ -31,6 +31,8 @@ struct MPTSASState {
 | 
				
			|||||||
    OnOffAuto msi;
 | 
					    OnOffAuto msi;
 | 
				
			||||||
    uint64_t sas_addr;
 | 
					    uint64_t sas_addr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool msi_in_use;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Doorbell register */
 | 
					    /* Doorbell register */
 | 
				
			||||||
    uint32_t state;
 | 
					    uint32_t state;
 | 
				
			||||||
    uint8_t who_init;
 | 
					    uint8_t who_init;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user