From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:60043) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QoODT-00036t-J9 for qemu-devel@nongnu.org; Tue, 02 Aug 2011 19:17:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QoODS-0005E1-Ic for qemu-devel@nongnu.org; Tue, 02 Aug 2011 19:17:39 -0400 Received: from mail-gy0-f173.google.com ([209.85.160.173]:36228) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QoODS-0005Dx-AC for qemu-devel@nongnu.org; Tue, 02 Aug 2011 19:17:38 -0400 Received: by gyg8 with SMTP id 8so205194gyg.4 for ; Tue, 02 Aug 2011 16:17:37 -0700 (PDT) Message-ID: <4E38858F.5090307@codemonkey.ws> Date: Tue, 02 Aug 2011 18:17:35 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1312326516-10117-1-git-send-email-aliguori@us.ibm.com> In-Reply-To: <1312326516-10117-1-git-send-email-aliguori@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] migration: remove subsections in fdc and rtl8139 and bump versions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Paolo Bonzini , qemu-devel@nongnu.org, Juan Quintela On 08/02/2011 06:08 PM, Anthony Liguori wrote: > 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 And to clarify, I'm proposing we carry this for stable 0.15 and master. Regards, Anthony Liguori > --- > 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 */ > - } > - } > }; > > /***********************************************************/