On 06/14/2016 04:12 PM, Markus Armbruster wrote:
"Michael S. Tsirkin" <m...@redhat.com> writes:
@@ -1222,7 +1215,6 @@ static const VMStateDescription vmstate_pvscsi = {
VMSTATE_STRUCT_TEST(parent_obj, PVSCSIState,
pvscsi_vmstate_test_pci_device, 0,
vmstate_pci_device, PCIDevice),
- VMSTATE_UINT8(msi_used, PVSCSIState),
VMSTATE_UINT32(resetting, PVSCSIState),
VMSTATE_UINT64(reg_interrupt_status, PVSCSIState),
VMSTATE_UINT64(reg_interrupt_enabled, PVSCSIState),
This change will break cross-version migration, we can't make it.
Oww, sorry I missed this!
The value shouldn't have been put into the migration stream, but now
it's there, we need to keep it there. Suggest:
Thanks, will collect these in next version.
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index ecd6077..edd91ec 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -121,7 +121,7 @@ typedef struct {
uint8_t msg_ring_info_valid; /* Whether message ring initialized
*/
uint8_t use_msg; /* Whether to use message ring
*/
- uint8_t msi_used; /* Whether MSI support was installed successfully */
+ uint8_t msi_used; /* For migration compatibility */
PVSCSIRingInfo rings; /* Data transfer rings manager
*/
uint32_t resetting; /* Reset in progress
*/
@@ -362,7 +362,7 @@ pvscsi_update_irq_status(PVSCSIState *s)
trace_pvscsi_update_irq_level(should_raise, s->reg_interrupt_enabled,
s->reg_interrupt_status);
- if (s->msi_used && msi_enabled(d)) {
+ if (msi_enabled(d)) {
if (should_raise) {
trace_pvscsi_update_irq_msi();
msi_notify(d, PVSCSI_VECTOR_COMPLETION);
@@ -1077,9 +1077,7 @@ pvscsi_cleanup_msi(PVSCSIState *s)
{
PCIDevice *d = PCI_DEVICE(s);
- if (s->msi_used) {
- msi_uninit(d);
- }
+ msi_uninit(d);
}
static const MemoryRegionOps pvscsi_ops = {
.
--
Yours Sincerely,
Cao jin