From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LKcYK-000373-0H for qemu-devel@nongnu.org; Wed, 07 Jan 2009 12:50:48 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LKcYJ-00036a-4w for qemu-devel@nongnu.org; Wed, 07 Jan 2009 12:50:47 -0500 Received: from [199.232.76.173] (port=33826 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LKcYI-00036T-W9 for qemu-devel@nongnu.org; Wed, 07 Jan 2009 12:50:47 -0500 Received: from savannah.gnu.org ([199.232.41.3]:55473 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LKcYI-0005yv-Lc for qemu-devel@nongnu.org; Wed, 07 Jan 2009 12:50:46 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1LKcYH-0000NN-Tn for qemu-devel@nongnu.org; Wed, 07 Jan 2009 17:50:45 +0000 Received: from aliguori by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1LKcYH-0000Ms-M2 for qemu-devel@nongnu.org; Wed, 07 Jan 2009 17:50:45 +0000 MIME-Version: 1.0 Errors-To: aliguori Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Anthony Liguori Message-Id: Date: Wed, 07 Jan 2009 17:50:45 +0000 Subject: [Qemu-devel] [6221] virtio-net migration fix (Mark McLoughlin) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 6221 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6221 Author: aliguori Date: 2009-01-07 17:50:45 +0000 (Wed, 07 Jan 2009) Log Message: ----------- virtio-net migration fix (Mark McLoughlin) We are failing to save whether the guest will supply us rx buffers using the new mergeable format; this can cause a migrated guest to crash with: virtio-net header not in first element Bump the savevm version number and refuse to load v1 saves just to be on the safe side. Signed-off-by: Mark McLoughlin Signed-off-by: Anthony Liguori Modified Paths: -------------- trunk/hw/virtio-net.c Modified: trunk/hw/virtio-net.c =================================================================== --- trunk/hw/virtio-net.c 2009-01-07 17:48:51 UTC (rev 6220) +++ trunk/hw/virtio-net.c 2009-01-07 17:50:45 UTC (rev 6221) @@ -275,19 +275,21 @@ qemu_put_buffer(f, n->mac, 6); qemu_put_be32(f, n->tx_timer_active); + qemu_put_be32(f, n->mergeable_rx_bufs); } static int virtio_net_load(QEMUFile *f, void *opaque, int version_id) { VirtIONet *n = opaque; - if (version_id != 1) + if (version_id != 2) return -EINVAL; virtio_load(&n->vdev, f); qemu_get_buffer(f, n->mac, 6); n->tx_timer_active = qemu_get_be32(f); + n->mergeable_rx_bufs = qemu_get_be32(f); if (n->tx_timer_active) { qemu_mod_timer(n->tx_timer, @@ -324,7 +326,7 @@ n->tx_timer_active = 0; n->mergeable_rx_bufs = 0; - register_savevm("virtio-net", virtio_net_id++, 1, + register_savevm("virtio-net", virtio_net_id++, 2, virtio_net_save, virtio_net_load, n); return (PCIDevice *)n;