From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZCR7F-0006iu-Pe for qemu-devel@nongnu.org; Tue, 07 Jul 2015 07:32:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZCR7C-0003G9-DP for qemu-devel@nongnu.org; Tue, 07 Jul 2015 07:32:45 -0400 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:41806) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZCR7C-0003FC-4x for qemu-devel@nongnu.org; Tue, 07 Jul 2015 07:32:42 -0400 Received: from /spool/local by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 7 Jul 2015 12:32:40 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp01.portsmouth.uk.ibm.com (Postfix) with ESMTP id 9807917D8063 for ; Tue, 7 Jul 2015 12:33:54 +0100 (BST) Received: from d06av03.portsmouth.uk.ibm.com (d06av03.portsmouth.uk.ibm.com [9.149.37.213]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t67BWcvs32768040 for ; Tue, 7 Jul 2015 11:32:38 GMT Received: from d06av03.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av03.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t67BWc1U032326 for ; Tue, 7 Jul 2015 05:32:38 -0600 Message-ID: <559BB8D6.4050404@de.ibm.com> Date: Tue, 07 Jul 2015 13:32:38 +0200 From: Christian Borntraeger MIME-Version: 1.0 References: <1435846249-20202-1-git-send-email-cornelia.huck@de.ibm.com> <1435846249-20202-9-git-send-email-cornelia.huck@de.ibm.com> In-Reply-To: <1435846249-20202-9-git-send-email-cornelia.huck@de.ibm.com> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PULL v3 for-2.4 08/11] virtio-ccw: migrate ->revision List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck , peter.maydell@linaro.org Cc: jfrei@linux.vnet.ibm.com, qemu-devel@nongnu.org, agraf@suse.de Am 02.07.2015 um 16:10 schrieb Cornelia Huck: > We need to migrate the revision field as well. No compatibility > concerns as we already introduced migration of ->config_vector in > this release. > > Signed-off-by: Cornelia Huck > --- > hw/s390x/virtio-ccw.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c > index 8597ac4..d631337 100644 > --- a/hw/s390x/virtio-ccw.c > +++ b/hw/s390x/virtio-ccw.c > @@ -1472,6 +1472,7 @@ static void virtio_ccw_save_config(DeviceState *d, QEMUFile *f) > qemu_put_be16(f, vdev->config_vector); > qemu_put_be64(f, dev->routes.adapter.ind_offset); > qemu_put_byte(f, dev->thinint_isc); > + qemu_put_be32(f, dev->revision); > } > > static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) > @@ -1512,6 +1513,7 @@ static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) > dev->thinint_isc, true, false, > &dev->routes.adapter.adapter_id); > } > + dev->revision = qemu_get_be32(f); > > return 0; > } > This broke migration: 2015-07-07T11:22:55.570968Z qemu-system-s390x: VQ 39 address 0x0 inconsistent with Host index 0x100 2015-07-07T11:22:55.571008Z qemu-system-s390x: error while loading state for instance 0x0 of Seems that revision is used before it is loaded, something like diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index d631337..f524140 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -1448,6 +1448,7 @@ static void virtio_ccw_save_config(DeviceState *d, QEMUFile *f) VirtIODevice *vdev = virtio_ccw_get_vdev(s); subch_device_save(s, f); + qemu_put_be32(f, dev->revision); if (dev->indicators != NULL) { qemu_put_be32(f, dev->indicators->len); qemu_put_be64(f, dev->indicators->addr); @@ -1472,7 +1473,6 @@ static void virtio_ccw_save_config(DeviceState *d, QEMUFile *f) qemu_put_be16(f, vdev->config_vector); qemu_put_be64(f, dev->routes.adapter.ind_offset); qemu_put_byte(f, dev->thinint_isc); - qemu_put_be32(f, dev->revision); } static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) @@ -1484,6 +1484,7 @@ static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) s->driver_data = dev; subch_device_load(s, f); + dev->revision = qemu_get_be32(f); len = qemu_get_be32(f); if (len != 0) { dev->indicators = get_indicator(qemu_get_be64(f), len); @@ -1513,7 +1514,6 @@ static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) dev->thinint_isc, true, false, &dev->routes.adapter.adapter_id); } - dev->revision = qemu_get_be32(f); return 0; } Seems to do the trick.