qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] migration: remove subsections in fdc and rtl8139 and bump versions
@ 2011-08-02 23:08 Anthony Liguori
  2011-08-02 23:17 ` Anthony Liguori
  2011-08-02 23:25 ` Juan Quintela
  0 siblings, 2 replies; 19+ messages in thread
From: Anthony Liguori @ 2011-08-02 23:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Anthony Liguori, Juan Quintela

As Paolo points out, the migration protocol is ambiguous when using subsections
today.  That means that even if we preserve subsections and change the protocol
accordingly, the old protocol w/subsections is still ambiguous.

Remove subsection usage and bump any device using subsections.  This effectively
eliminates the amiguouity and allows for a clean transition to a new protocol
with unambiguous subsections.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
 hw/fdc.c     |   37 ++++++-------------------------------
 hw/rtl8139.c |   34 +++-------------------------------
 2 files changed, 9 insertions(+), 62 deletions(-)

diff --git a/hw/fdc.c b/hw/fdc.c
index edf0360..d8d74c9 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -554,45 +554,20 @@ static int fdrive_media_changed_post_load(void *opaque, int version_id)
     return 0;
 }
 
-static bool fdrive_media_changed_needed(void *opaque)
-{
-    FDrive *drive = opaque;
-
-    return (drive->bs != NULL && drive->bs->media_changed != 1);
-}
-
-static const VMStateDescription vmstate_fdrive_media_changed = {
-    .name = "fdrive/media_changed",
-    .version_id = 1,
-    .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
-    .pre_save = fdrive_media_changed_pre_save,
-    .post_load = fdrive_media_changed_post_load,
-    .fields      = (VMStateField[]) {
-        VMSTATE_UINT8(media_changed, FDrive),
-        VMSTATE_END_OF_LIST()
-    }
-};
-
 static const VMStateDescription vmstate_fdrive = {
     .name = "fdrive",
-    .version_id = 1,
-    .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
+    .version_id = 2,
+    .minimum_version_id = 2,
+    .minimum_version_id_old = 2,
+    .pre_save = fdrive_media_changed_pre_save,
+    .post_load = fdrive_media_changed_post_load,
     .fields      = (VMStateField[]) {
         VMSTATE_UINT8(head, FDrive),
         VMSTATE_UINT8(track, FDrive),
         VMSTATE_UINT8(sect, FDrive),
+        VMSTATE_UINT8(media_changed, FDrive),
         VMSTATE_END_OF_LIST()
     },
-    .subsections = (VMStateSubsection[]) {
-        {
-            .vmsd = &vmstate_fdrive_media_changed,
-            .needed = &fdrive_media_changed_needed,
-        } , {
-            /* empty */
-        }
-    }
 };
 
 static void fdc_pre_save(void *opaque)
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index 5214b8c..11951f2 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -505,9 +505,6 @@ typedef struct RTL8139State {
     /* PCI interrupt timer */
     QEMUTimer *timer;
     int64_t TimerExpire;
-
-    /* Support migration to/from old versions */
-    int rtl8139_mmio_io_addr_dummy;
 } RTL8139State;
 
 static void rtl8139_set_next_tctr_time(RTL8139State *s, int64_t current_time);
@@ -3259,21 +3256,6 @@ static int rtl8139_post_load(void *opaque, int version_id)
     return 0;
 }
 
-static bool rtl8139_hotplug_ready_needed(void *opaque)
-{
-    return qdev_machine_modified();
-}
-
-static const VMStateDescription vmstate_rtl8139_hotplug_ready ={
-    .name = "rtl8139/hotplug_ready",
-    .version_id = 1,
-    .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
-    .fields      = (VMStateField []) {
-        VMSTATE_END_OF_LIST()
-    }
-};
-
 static void rtl8139_pre_save(void *opaque)
 {
     RTL8139State* s = opaque;
@@ -3283,14 +3265,13 @@ static void rtl8139_pre_save(void *opaque)
     rtl8139_set_next_tctr_time(s, current_time);
     s->TCTR = muldiv64(current_time - s->TCTR_base, PCI_FREQUENCY,
                        get_ticks_per_sec());
-    s->rtl8139_mmio_io_addr_dummy = s->rtl8139_mmio_io_addr;
 }
 
 static const VMStateDescription vmstate_rtl8139 = {
     .name = "rtl8139",
-    .version_id = 4,
-    .minimum_version_id = 3,
-    .minimum_version_id_old = 3,
+    .version_id = 5,
+    .minimum_version_id = 5,
+    .minimum_version_id_old = 5,
     .post_load = rtl8139_post_load,
     .pre_save  = rtl8139_pre_save,
     .fields      = (VMStateField []) {
@@ -3336,7 +3317,6 @@ static const VMStateDescription vmstate_rtl8139 = {
 
         VMSTATE_UNUSED(4),
         VMSTATE_MACADDR(conf.macaddr, RTL8139State),
-        VMSTATE_INT32(rtl8139_mmio_io_addr_dummy, RTL8139State),
 
         VMSTATE_UINT32(currTxDesc, RTL8139State),
         VMSTATE_UINT32(currCPlusRxDesc, RTL8139State),
@@ -3366,14 +3346,6 @@ static const VMStateDescription vmstate_rtl8139 = {
         VMSTATE_UINT32_V(cplus_enabled, RTL8139State, 4),
         VMSTATE_END_OF_LIST()
     },
-    .subsections = (VMStateSubsection []) {
-        {
-            .vmsd = &vmstate_rtl8139_hotplug_ready,
-            .needed = rtl8139_hotplug_ready_needed,
-        }, {
-            /* empty */
-        }
-    }
 };
 
 /***********************************************************/
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2011-08-04 20:31 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-02 23:08 [Qemu-devel] [PATCH] migration: remove subsections in fdc and rtl8139 and bump versions Anthony Liguori
2011-08-02 23:17 ` Anthony Liguori
2011-08-02 23:25 ` Juan Quintela
2011-08-03  0:12   ` Anthony Liguori
2011-08-03  6:44     ` Paolo Bonzini
2011-08-03 17:44       ` Anthony Liguori
2011-08-04  7:17         ` Paolo Bonzini
2011-08-03  9:00     ` Juan Quintela
2011-08-03 17:49       ` Anthony Liguori
2011-08-03 21:42         ` Juan Quintela
2011-08-04  7:22           ` Paolo Bonzini
2011-08-04 13:20             ` Anthony Liguori
2011-08-04 14:09               ` Kevin Wolf
2011-08-04 14:30                 ` Anthony Liguori
2011-08-04 15:07                   ` Paolo Bonzini
2011-08-04 20:31             ` Anthony Liguori
2011-08-04 12:59           ` Kevin Wolf
2011-08-04 13:12             ` Anthony Liguori
2011-08-04 14:36             ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).