From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43894) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YH7zI-0006Yh-OI for qemu-devel@nongnu.org; Fri, 30 Jan 2015 04:35:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YH7zE-0002tI-Js for qemu-devel@nongnu.org; Fri, 30 Jan 2015 04:35:40 -0500 Received: from mail-wg0-x234.google.com ([2a00:1450:400c:c00::234]:46812) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YH7zE-0002t7-6c for qemu-devel@nongnu.org; Fri, 30 Jan 2015 04:35:36 -0500 Received: by mail-wg0-f52.google.com with SMTP id y19so25766298wgg.11 for ; Fri, 30 Jan 2015 01:35:35 -0800 (PST) Sender: Paolo Bonzini Message-ID: <54CB5063.4060904@redhat.com> Date: Fri, 30 Jan 2015 10:35:31 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1418780167-16231-1-git-send-email-jsnow@redhat.com> <1418780167-16231-15-git-send-email-jsnow@redhat.com> In-Reply-To: <1418780167-16231-15-git-send-email-jsnow@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 14/17] ahci: Migrate IDEStatus List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , qemu-devel@nongnu.org Cc: kwolf@redhat.com, mreitz@redhat.com, armbru@redhat.com, stefanha@redhat.com, mst@redhat.com On 17/12/2014 02:36, John Snow wrote: > Amazingly, we weren't doing this before. > > Make sure we migrate the IDEState structure that belongs to > the AHCIDevice.IDEBus structure during migrations. > > No version numbering changes because AHCI is not officially > migratable (and we can all see with good reason why) so we > do not impact any official builds by altering the stream and > leaving it at version 1. > > This fixes the rerror=stop/werror=stop test case where we wish > to migrate a halted job. Previously, the error code would not > migrate, so even if the job completed successfully, AHCI would > report an error because it would still have the placeholder > error code from initialization time. > > Signed-off-by: John Snow Reviewed-by: Paolo Bonzini > --- > hw/ide/ahci.c | 1 + > hw/ide/internal.h | 3 +++ > 2 files changed, 4 insertions(+) > > diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c > index bc6d5ce..3f4fc77 100644 > --- a/hw/ide/ahci.c > +++ b/hw/ide/ahci.c > @@ -1321,6 +1321,7 @@ static const VMStateDescription vmstate_ahci_device = { > .version_id = 1, > .fields = (VMStateField[]) { > VMSTATE_IDE_BUS(port, AHCIDevice), > + VMSTATE_IDE_DRIVE(port.ifs[0], AHCIDevice), > VMSTATE_UINT32(port_state, AHCIDevice), > VMSTATE_UINT32(finished, AHCIDevice), > VMSTATE_UINT32(port_regs.lst_addr, AHCIDevice), > diff --git a/hw/ide/internal.h b/hw/ide/internal.h > index 0beba43..c278dea 100644 > --- a/hw/ide/internal.h > +++ b/hw/ide/internal.h > @@ -524,6 +524,9 @@ extern const VMStateDescription vmstate_ide_drive; > #define VMSTATE_IDE_DRIVES(_field, _state) \ > VMSTATE_STRUCT_ARRAY(_field, _state, 2, 3, vmstate_ide_drive, IDEState) > > +#define VMSTATE_IDE_DRIVE(_field, _state) \ > + VMSTATE_STRUCT(_field, _state, 1, vmstate_ide_drive, IDEState) > + > void ide_bus_reset(IDEBus *bus); > int64_t ide_get_sector(IDEState *s); > void ide_set_sector(IDEState *s, int64_t sector_num); >